Fix undefined behavior flagged by UBSAN
[alexxy/gromacs.git] / src / gromacs / selection / parsetree.cpp
index 1294a138013bc7ff562fb3135781450c58d35b6e..d7e536358e8a8d8225215d90d8b38fb2fa002973 100644 (file)
@@ -497,7 +497,10 @@ void _gmx_selelem_init_method_params(const gmx::SelectionTreeElementPointer& sel
     nparams  = sel->u.expr.method->nparams;
     orgparam = sel->u.expr.method->param;
     snew(param, nparams);
-    memcpy(param, orgparam, nparams * sizeof(gmx_ana_selparam_t));
+    if (nparams > 0)
+    {
+        memcpy(param, orgparam, nparams * sizeof(gmx_ana_selparam_t));
+    }
     for (i = 0; i < nparams; ++i)
     {
         param[i].flags &= ~SPAR_SET;