From ffc9815e4461dd34424f5b0ba2cd36552be46fc6 Mon Sep 17 00:00:00 2001 From: Paul Bauer Date: Fri, 5 Jun 2020 14:46:17 +0200 Subject: [PATCH] Fix segmentation fault when reading energy terms 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 | 7 +++++++ src/gromacs/gmxana/gmx_lie.cpp | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/release-notes/2020/2020.3.rst b/docs/release-notes/2020/2020.3.rst index 04fa190e47..23ba5276a9 100644 --- a/docs/release-notes/2020/2020.3.rst +++ b/docs/release-notes/2020/2020.3.rst @@ -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 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/gromacs/gmxana/gmx_lie.cpp b/src/gromacs/gmxana/gmx_lie.cpp index d19ee95a30..fb644192ea 100644 --- a/src/gromacs/gmxana/gmx_lie.cpp +++ b/src/gromacs/gmxana/gmx_lie.cpp @@ -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) { -- 2.11.4.GIT