diff options
author | ru <ru@FreeBSD.org> | 1999-07-23 08:28:46 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 1999-07-23 08:28:46 +0000 |
commit | 78cfb5805ba19466feb96958535ca70e8f7c4f5c (patch) | |
tree | b90150c2da1d2c92847bfbb3cbe1855c60076f08 /sbin/init | |
parent | 2455d1c335e089d1fdcc0f62570b256af69412c9 (diff) | |
download | FreeBSD-src-78cfb5805ba19466feb96958535ca70e8f7c4f5c.zip FreeBSD-src-78cfb5805ba19466feb96958535ca70e8f7c4f5c.tar.gz |
Fix a non-critical memory leak.
PR: 12769
Submitted by: Peter Jeremy <peter.jeremy@alcatel.com.au>
Diffstat (limited to 'sbin/init')
-rw-r--r-- | sbin/init/init.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sbin/init/init.c b/sbin/init/init.c index bc3717a..dc90e6d 100644 --- a/sbin/init/init.c +++ b/sbin/init/init.c @@ -45,7 +45,7 @@ static const char copyright[] = static char sccsid[] = "@(#)init.c 8.1 (Berkeley) 7/15/93"; #endif static const char rcsid[] = - "$Id: init.c,v 1.32 1999/06/16 20:01:19 ru Exp $"; + "$Id: init.c,v 1.33 1999/06/18 09:08:09 ru Exp $"; #endif /* not lint */ #include <sys/param.h> @@ -935,8 +935,10 @@ construct_argv(command) register char **argv = (char **) malloc(((strlen(command) + 1) / 2 + 1) * sizeof (char *)); - if ((argv[argc++] = strk(command)) == 0) - return 0; + if ((argv[argc++] = strk(command)) == 0) { + free(argv); + return (NULL); + } while ((argv[argc++] = strk((char *) 0)) != NULL) continue; return argv; @@ -1044,7 +1046,7 @@ setupargv(sp, typ) return (0); } if (sp->se_window) { - free(sp->se_window); + free(sp->se_window); free(sp->se_window_argv_space); free(sp->se_window_argv); } |