From nobody@FreeBSD.org  Fri Jul  4 10:35:24 2008
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4A1B3106566C
	for <freebsd-gnats-submit@FreeBSD.org>; Fri,  4 Jul 2008 10:35:24 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 3878D8FC2C
	for <freebsd-gnats-submit@FreeBSD.org>; Fri,  4 Jul 2008 10:35:24 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.2/8.14.2) with ESMTP id m64AZNu6092445
	for <freebsd-gnats-submit@FreeBSD.org>; Fri, 4 Jul 2008 10:35:23 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.2/8.14.1/Submit) id m64AZNhV092444;
	Fri, 4 Jul 2008 10:35:23 GMT
	(envelope-from nobody)
Message-Id: <200807041035.m64AZNhV092444@www.freebsd.org>
Date: Fri, 4 Jul 2008 10:35:23 GMT
From: Mateusz Guzik <mjguzik@gmail.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: [jail][patch] Possible memory leak in function jail
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         125257
>Category:       kern
>Synopsis:       [jail][patch] Possible memory leak in function jail
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    bz
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jul 04 10:40:01 UTC 2008
>Closed-Date:    Sat Aug 02 17:09:09 UTC 2008
>Last-Modified:  Sat Aug 02 17:09:09 UTC 2008
>Originator:     Mateusz Guzik
>Release:        8.0-CURRENT
>Organization:
>Environment:
FreeBSD eternal 8.0-CURRENT FreeBSD 8.0-CURRENT #12: Fri Jul  4 12:16:30 CEST 2008     f@eternal:/usr/obj/usr/src/sys/ETERNAL  i386
>Description:
Line 164 of sys/kern/kern_jail.c (rev 1.78) looks like this:
pr->pr_slots = malloc(sizeof(*pr->pr_slots) * prison_service_slots,
                    M_PRISON, M_ZERO | M_WAITOK);

But in case of failure, memmory allocated for pr->pr_slots is not freed. (Lines starting at 215.)
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

--- sys/kern/kern_jail.c.orig	2008-07-04 12:11:43.000000000 +0200
+++ sys/kern/kern_jail.c	2008-07-04 12:33:45.000000000 +0200
@@ -212,10 +212,12 @@
 	vfslocked = VFS_LOCK_GIANT(pr->pr_root->v_mount);
 	vrele(pr->pr_root);
 	VFS_UNLOCK_GIANT(vfslocked);
 e_killmtx:
 	mtx_destroy(&pr->pr_mtx);
+	if (pr->pr_slots != NULL)
+		FREE(pr->pr_slots, M_PRISON);
 	FREE(pr, M_PRISON);
 	return (error);
 }
 
 /*


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->bz 
Responsible-Changed-By: bz 
Responsible-Changed-When: Fri Jul 4 10:50:25 UTC 2008 
Responsible-Changed-Why:  
I have that FREE in my P4 jails work in progres already. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=125257 
State-Changed-From-To: open->patched 
State-Changed-By: bz 
State-Changed-When: Mon Jul 7 20:54:35 UTC 2008 
State-Changed-Why:  
Patch committed to HEAD. 
Mateusz Guzik had sent a follow-up privately pointing out the 
prison_complete leak as well. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=125257 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/125257: commit references a PR
Date: Mon,  7 Jul 2008 20:54:07 +0000 (UTC)

 bz          2008-07-07 20:53:49 UTC
 
   FreeBSD src repository
 
   Modified files:
     sys/kern             kern_jail.c 
   Log:
   SVN rev 180357 on 2008-07-07 20:53:49Z by bz
   
   MFp4 144659:
   Plug a memory leak with jail services.
   
   PR:             125257
   Submitted by:   Mateusz Guzik <mjguzik gmail.com>
   MFC after:      6 days
   
   Revision  Changes    Path
   1.80      +4 -0      src/sys/kern/kern_jail.c
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/125257: commit references a PR
Date: Sat,  2 Aug 2008 16:54:11 +0000 (UTC)

 bz          2008-08-02 16:53:45 UTC
 
   FreeBSD src repository
 
   Modified files:        (Branch: RELENG_7)
     sys/kern             kern_jail.c 
   Log:
   SVN rev 181190 on 2008-08-02 16:53:45Z by bz
   
   MFC: r180357, cvs rev. 1.80 kern_jail.c
   
     Plug a memory leak with jail services.
   
   PR:             125257
   Submitted by:   Mateusz Guzik <mjguzik gmail.com>
   
   Revision  Changes    Path
   1.70.2.4  +4 -0      src/sys/kern/kern_jail.c
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: patched->closed 
State-Changed-By: bz 
State-Changed-When: Sat Aug 2 17:08:48 UTC 2008 
State-Changed-Why:  
Fix was MFCed. Thanks for reporting. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=125257 
>Unformatted:
