Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Jul 2002 13:24:11 +0200
From:      Stefan Farfeleder <e0026813@stud3.tuwien.ac.at>
To:        Eugene Grosbein <eu@grosbein.pp.ru>
Cc:        FreeBSD-gnats-submit@FreeBSD.ORG, stable@FreeBSD.ORG
Subject:   Re: /bin/sh with builtin 'test' has memory leaks
Message-ID:  <20020704112411.GA254@frog.fafoe>
In-Reply-To: <200207041016.g64AGhEF017182@grosbein.pp.ru>
References:  <200207041016.g64AGhEF017182@grosbein.pp.ru>

next in thread | previous in thread | raw e-mail | index | archive | help

--bg08WKrSYDhXBjb5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Thu, Jul 04, 2002 at 06:16:43PM +0800, Eugene Grosbein wrote:
> 
> >Description:
> 	There seem to be memory leak in 'test' command that was not
> 	a problem when it was external command but it became a problem
> 	when 'test' was made builtin.

Please try this patch. It isn't particularly elegant, but it cures the
leak.

Stefan Farfeleder

--bg08WKrSYDhXBjb5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="test.patch"

Index: src/bin/test/test.c
===================================================================
RCS file: /home/ncvs/src/bin/test/test.c,v
retrieving revision 1.29.2.5
diff -u -r1.29.2.5 test.c
--- src/bin/test/test.c	29 Apr 2002 13:06:02 -0000	1.29.2.5
+++ src/bin/test/test.c	4 Jul 2002 11:19:18 -0000
@@ -46,6 +46,7 @@
 #ifndef __STDC__
 	const char *msg;
 
+	free(nargs);
 	va_start(ap);
 	msg = va_arg(ap, const char *);
 #else
@@ -172,6 +173,7 @@
 };
 
 struct t_op const *t_wp_op;
+char **nargv;
 char **t_wp;
 
 static int	aexpr __P((enum token));
@@ -199,7 +201,6 @@
 	uid_t	euid, uid;
 	int	i, res;
 	char	*p;
-	char	**nargv;
 
 	/*
 	 * XXX copy the whole contents of argv to a newly allocated
@@ -240,6 +241,8 @@
 		syntax(*t_wp, "unexpected operator");
 	(void)setregid(gid, egid);
 	(void)setreuid(uid, euid);
+
+	free(nargv);
 
 	return res;
 }

--bg08WKrSYDhXBjb5--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020704112411.GA254>