[gmx-developers] uninitialized data

Alexander Herz aherz.kazan at arcor.de
Tue Apr 21 19:40:09 CEST 2009

There appears to be a problem with uninitialized data that might affact
the shifted virial and other things:

in md.c the following code creates the forcerec:

    fr = mk_forcerec();
    fr->bSepDVDL = ((Flags & MD_SEPPOT) == MD_SEPPOT);

where mk_forcerec() contains:

t_forcerec *mk_forcerec(void)
  t_forcerec *fr;

    //!!!!!!missing :     memset(fr,0,sizeof(fr));
  return fr;

and init_forcerec() contains:
    if (fr->fshift == NULL)
    if (fr->nbfp == NULL) {
        fr->ntype = mtop->ffparams.atnr;
        fr->bBHAM = (mtop->ffparams.functype[0] == F_BHAM);
        fr->nbfp  = mk_nbfp(&mtop->ffparams,fr->bBHAM);

Without the missing memset I added as a comment to mk_forcerec,
fr->fshift may contain anything
and might therefore not be initialized. Valgrind also complains about this.

I have not yet had the time to see if this affects the shifted virial
problems I reported the other day.
I'll look at that tomorrow!


More information about the gromacs.org_gmx-developers mailing list