[gmx-developers] uninitialized data
Alexander Herz
aherz.kazan at arcor.de
Tue Apr 21 19:57:31 CEST 2009
of course it must be
memset(fr,0,sizeof(t_forcerec));
as fr is a pointer
Alex
Alexander Herz schrieb:
> 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();
> init_forcerec(fplog,fr,fcd,inputrec,mtop,cr,box,FALSE,
> opt2fn("-table",nfile,fnm),opt2fn("-tablep",nfile,fnm),
> opt2fn("-tableb",nfile,fnm),FALSE,pforce);
> fr->bSepDVDL = ((Flags & MD_SEPPOT) == MD_SEPPOT);
>
>
> where mk_forcerec() contains:
>
> t_forcerec *mk_forcerec(void)
> {
> t_forcerec *fr;
>
> snew(fr,1);
>
> //!!!!!!missing : memset(fr,0,sizeof(fr));
> return fr;
> }
>
> and init_forcerec() contains:
> ...
> if (fr->fshift == NULL)
> snew(fr->fshift,SHIFTS);
>
> 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!
>
> Alex
>
>
> _______________________________________________
> gmx-developers mailing list
> gmx-developers at gromacs.org
> http://www.gromacs.org/mailman/listinfo/gmx-developers
> Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-developers-request at gromacs.org.
>
More information about the gromacs.org_gmx-developers
mailing list