Re: Memory leak in authunix_create_default()...

From: Andrew Boyer <aboyer_at_averesystems.com>
Date: Mon, 23 Apr 2012 13:48:52 -0400
On Apr 23, 2012, at 1:44 PM, Dimitry Andric wrote:

> On 2012-04-23 19:31, Andrew Boyer wrote:
>> Begin forwarded message:
>> 
>>> From: Greg Bednarek <gbednarek_at_averesystems.com>
>>> Date: April 16, 2012 10:54:33 AM EDT
>>> To: freebsd-current_at_freebsd.org
>>> Cc: Andrew Boyer <aboyer_at_averesystems.com>
>>> Subject: Memory leak in authunix_create_default()...
>>> 
>>> 
>>> Please see the attached patch for a proposed fix for a memory leak in authunix_create_default().
>>> 
>>> The leak appears to have been introduced 6/19/2009 in Revision 194494 of lib/libc/rpc/auth_unix.c
>>> 
>>> As you can see form the patch, the fix is very simple. The issue was discovered when tracking down some rather drastic increases in application memory footprint during certain types of workloads, and was eventually traced it to this (apparently) not very heavily used path in libc.
>>> 
>>> I would appreciate hearing any comments/concerns with the proposed fix.
> 
> Hi,
> 
> The patch itself seems to have gone missing?


Trying again...




Index: lib/libc/rpc/auth_unix.c
===================================================================
--- lib/libc/rpc/auth_unix.c	(revision 234224)
+++ lib/libc/rpc/auth_unix.c	(working copy)
_at__at_ -185,6 +185,7 _at__at_
 AUTH *
 authunix_create_default()
 {
+	AUTH *auth;
 	int ngids;
 	long ngids_max;
 	char machname[MAXHOSTNAMELEN + 1];
_at__at_ -207,8 +208,10 _at__at_
 	if (ngids > NGRPS)
 		ngids = NGRPS;
 	/* XXX: interface problem; those should all have been unsigned */
-	return (authunix_create(machname, (int)uid, (int)gid, ngids,
-	    (int *)gids));
+	auth = authunix_create(machname, (int)uid, (int)gid, ngids,
+	    (int *)gids);
+	free(gids);
+	return (auth);
 }
 
 /*



--------------------------------------------------
Andrew Boyer	aboyer_at_averesystems.com





Received on Mon Apr 23 2012 - 15:48:55 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:26 UTC