Date: Fri, 23 Jul 1999 14:13:03 +1000 From: Peter Jeremy <jeremyp@gsmx07.alcatel.com.au> To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: bin/12769: Memory leak in init(8) Message-ID: <99Jul23.135448est.40354@border.alcanet.com.au>
next in thread | raw e-mail | index | archive | help
>Number: 12769
>Category: bin
>Synopsis: Memory leak in init(8)
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Jul 22 21:20:00 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator: Peter Jeremy
>Release: FreeBSD 4.0-CURRENT i386
>Organization:
Alcatel Australia Limited
>Environment:
cvs-cur 5500
>Description:
If init is unable to parse the getty or window command line, it
doesn't free the memory it allocated to contain the argv pointers
(allocated at 1 more than half the length of the command line).
>How-To-Repeat:
Found by code inspection.
An /etc/ttys containing the following line:
tty99 " " cons25 on secure
should leak 128 bytes on every SIGHUP. Enough similar lines and
enough SIGHUPs show a detectable increase in process size.
>Fix:
Index: sbin/init/init.c
===================================================================
RCS file: /home/CVSROOT/./src/sbin/init/init.c,v
retrieving revision 1.33
diff -u -r1.33 init.c
--- init.c 1999/06/18 09:08:09 1.33
+++ init.c 1999/07/23 03:53:39
@@ -935,8 +935,10 @@
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 @@
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);
}
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?99Jul23.135448est.40354>
