Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/usr.sbin/envstat



On Dec 13, 2012, at 4:30 PM, John Nemeth wrote:

> On Mar 31, 12:00am, Paul Goyette wrote:
> }
> } > Module Name:    src
> } > Committed By:   christos
> } > Date:           Thu Dec 13 19:31:25 UTC 2012
> } >
> } > Modified Files:
> } >         src/usr.sbin/envstat: envstat.c
> } 
> } > Log Message:
> } > PR/47316: Henning Petersen: Memory leak in envstat with config file.
> } 
> } While we're making sure to free() things, should we not also defend 
> } against memory leaks in the case where an option is used more than once?
> } 
> } RCS file: /cvsroot/src/usr.sbin/envstat/envstat.c,v
> } retrieving revision 1.92
> } diff -u -p -r1.92 envstat.c
> } --- envstat.c   13 Dec 2012 19:31:25 -0000      1.92
> } +++ envstat.c   13 Dec 2012 19:47:44 -0000
> } @@ -132,6 +132,7 @@ int main(int argc, char **argv)
> }     while ((c = getopt(argc, argv, "c:Dd:fIi:klrSs:Tw:Wx")) != -1) {
> }             switch (c) {
> }             case 'c':       /* configuration file */
> } +                   free(configfile);
> }                     configfile = strdup(optarg);
> }                     if (configfile == NULL)
> }                             err(EXIT_FAILURE, "strdup");
> 
>     If you're going to be this paranoid, you should make sure that
> you're not passing NULL to free(3).  That can blow up on some systems.
> Anyways, I see that Christos has already fixed this in a different way,
> so it doesn't really matter.

free(NULL); has been required to be a nop since c89.

Warner



Home | Main Index | Thread Index | Old Index