Fix segmentation fault when reading energy terms
authorPaul Bauer <paul.bauer.q@gmail.com>
Fri, 5 Jun 2020 12:46:17 +0000 (14:46 +0200)
committerPaul Bauer <paul.bauer.q@gmail.com>
Fri, 5 Jun 2020 12:48:17 +0000 (14:48 +0200)
While trying to read the names from the file, it could read past the
allocation if the number of terms was smaller than F_NRE.

Fixes #3547

Change-Id: I978cdedaac5e52b10cee02b05e90851102eeb2bd

docs/release-notes/2020/2020.3.rst
src/gromacs/gmxana/gmx_lie.cpp

index 04fa190e47b7dbec3085743909b4e4299e281844..23ba5276a92c283d748d1e4b2557b6c9c5e764f8 100644 (file)
@@ -19,6 +19,13 @@ Fixes where mdrun could behave incorrectly
 Fixes for ``gmx`` tools
 ^^^^^^^^^^^^^^^^^^^^^^^
 
+Fix segmentation fault with gmx lie
+"""""""""""""""""""""""""""""""""""
+
+The tool would crash due to mismatching sizes of energy terms in the file and F_NRE.
+
+:issue:`3547`
+
 Fixes that affect portability
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
index d19ee95a309108b1a5f1de74e799329ea1ad571e..fb644192ead08ec07342d11c87340105c9b26c76 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2017,2018,2019, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2017,2018,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -70,7 +70,7 @@ static t_liedata* analyze_names(int nre, gmx_enxnm_t* names, const char* ligand)
     char       self[256];
 
     /* Skip until we come to pressure */
-    for (i = 0; (i < F_NRE); i++)
+    for (i = 0; (i < nre); i++)
     {
         if (std::strcmp(names[i].name, interaction_function[F_PRES].longname) == 0)
         {