Fix segfault with old tprs processing internal parameters
authorChristian Blau <cblau@gwdg.de>
Fri, 16 Aug 2019 11:41:07 +0000 (13:41 +0200)
committerErik Lindahl <erik.lindahl@gmail.com>
Sat, 17 Aug 2019 15:29:16 +0000 (17:29 +0200)
Mdrun would occasionally segfault when processing tpr versions before
generic internal parameter storage. This patch fixes the segfaults.

Fixes #3060

Change-Id: Ied638943112ab6c18b425584f3361cbb5a3b7de6

src/gromacs/fileio/tpxio.cpp

index 409ec59fb3b81a0fd92ebb6201d17ab506119bb9..6a4ea30d3aee473443b1f7b1a921fc0e87799216 100644 (file)
@@ -1685,6 +1685,8 @@ static void do_inputrec(gmx::ISerializer         *serializer,
     if (serializer->reading())
     {
         ir->params = new gmx::KeyValueTreeObject(paramsBuilder.build());
+        // Initialize internal parameters to an empty kvt for all tpr versions
+        ir->internalParameters = std::make_unique<gmx::KeyValueTreeObject>();
     }
 
     if (file_version >= tpxv_GenericInternalParameters)