Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Jun 2009 21:48:04 +0000 (UTC)
From:      Rick Macklem <rmacklem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r194773 - head/usr.sbin/mountd
Message-ID:  <200906232148.n5NLm4fX091248@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rmacklem
Date: Tue Jun 23 21:48:04 2009
New Revision: 194773
URL: http://svn.freebsd.org/changeset/base/194773

Log:
  When mountd.c parses the nfsv4 root line(s) in /etc/exports, it
  allocates data structures that are never linked into the tree or free'd.
  As such, mountd would leak memory every time it parsed an nfsv4 root line.
  This patch frees up those structures to plug the leak.
  
  Approved by:	kib (mentor)

Modified:
  head/usr.sbin/mountd/mountd.c

Modified: head/usr.sbin/mountd/mountd.c
==============================================================================
--- head/usr.sbin/mountd/mountd.c	Tue Jun 23 21:45:33 2009	(r194772)
+++ head/usr.sbin/mountd/mountd.c	Tue Jun 23 21:48:04 2009	(r194773)
@@ -1414,8 +1414,20 @@ get_exportlist_one()
 		/*
 		 * For V4: don't enter in mount lists.
 		 */
-		if (v4root_phase > 0 && v4root_phase <= 2)
+		if (v4root_phase > 0 && v4root_phase <= 2) {
+			/*
+			 * Since these structures aren't used by mountd,
+			 * free them up now.
+			 */
+			if (ep != NULL)
+				free_exp(ep);
+			while (tgrp != NULL) {
+				grp = tgrp;
+				tgrp = tgrp->gr_next;
+				free_grp(grp);
+			}
 			goto nextline;
+		}
 
 		/*
 		 * Success. Update the data structures.



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