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. }-- End of excerpt from Paul Goyette