Merge release-5-0 into release-5-1
[alexxy/gromacs.git] / src / gromacs / gmxana / dlist.c
index b7578cef623f03e97c71f8f2dd82ae9b537ae70a..0a844a82603a4472ed8548688479980780ae9b5d 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, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015, 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.
@@ -222,6 +222,16 @@ t_dlist *mk_dlist(FILE *log,
             }
             dl[nl].index = gmx_residuetype_get_index(rt, thisres);
 
+            /* Prevent seg fault from unknown residues. If one adds a custom residue to
+             * residuetypes.dat but somehow loses it, changes it, or does analysis on
+             * another machine, the residue type will be unknown. */
+            if (dl[nl].index == -1)
+            {
+                gmx_fatal(FARGS, "Unknown residue %s when searching for residue type.\n"
+                          "Maybe you need to add a custom residue in residuetypes.dat.",
+                          thisres, __FILE__, __LINE__);
+            }
+
             sprintf(dl[nl].name, "%s%d", thisres, ires+r0);
             nl++;
         }