gnu: openbabel: Fix crash when opening NWChem output files.

* gnu/packages/patches/openbabel-fix-crash-on-nwchem-output.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/chemistry.scm (openbabel)[source]: Use it.
This commit is contained in:
Kei Kebreau 2018-07-21 12:47:34 -04:00
parent 889e7fab3c
commit eb5ece73a8
No known key found for this signature in database
GPG Key ID: E6A5EE3C19467A0D
3 changed files with 38 additions and 1 deletions

View File

@ -979,6 +979,7 @@ dist_patch_DATA = \
%D%/packages/patches/ocaml-graph-honor-source-date-epoch.patch \
%D%/packages/patches/omake-fix-non-determinism.patch \
%D%/packages/patches/ola-readdir-r.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/openblas-fix-tests-i686.patch \
%D%/packages/patches/openexr-missing-samples.patch \

View File

@ -213,7 +213,9 @@ NumPy < 1.9.")
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"1z3d6xm70dpfikhwdnbzc66j2l49vq105ch041wivrfz5ic3ch90"))))
"1z3d6xm70dpfikhwdnbzc66j2l49vq105ch041wivrfz5ic3ch90"))
(patches
(search-patches "openbabel-fix-crash-on-nwchem-output.patch"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags

View File

@ -0,0 +1,34 @@
From 52cea818bf68f8a2d3c48d55d00c2f8b7da25e4c Mon Sep 17 00:00:00 2001
From: Daniel Hogan <daniel.hogan@usask.ca>
Date: Tue, 28 Mar 2017 22:21:18 -0600
Subject: [PATCH] Remove delete statement.
When from_scratch is true, coordinates is not allocated. A separate if
statement was added to handle the case when from_scratch is true that
does not try to free coordinates.
---
src/formats/nwchemformat.cpp | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/formats/nwchemformat.cpp b/src/formats/nwchemformat.cpp
index 6f625ad5b..79298555f 100644
--- a/src/formats/nwchemformat.cpp
+++ b/src/formats/nwchemformat.cpp
@@ -232,11 +232,14 @@ static const char* OPTIMIZATION_END_PATTERN = " Optimization converged";
break;
tokenize(vs,buffer);
}
- if ((from_scratch)||(i != natoms))
- {
+ if (from_scratch)
+ {
+ return;
+ }
+ if (i != natoms) {
delete[] coordinates;
return;
- }
+ }
molecule->AddConformer(coordinates);
}