Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Dec 2019 15:54:37 +0000 (UTC)
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r356204 - head/usr.sbin/inetd
Message-ID:  <201912301554.xBUFsbVG077612@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kevans
Date: Mon Dec 30 15:54:36 2019
New Revision: 356204
URL: https://svnweb.freebsd.org/changeset/base/356204

Log:
  inetd: don't leak `policy` on return
  
  sep->se_policy gets a strdup'd version of policy, so we don't need it to
  stick around afterwards.
  
  While here, remove a couple of NULL checks prior to free(policy).
  
  CID:		1006865
  MFC after:	3 days

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

Modified: head/usr.sbin/inetd/inetd.c
==============================================================================
--- head/usr.sbin/inetd/inetd.c	Mon Dec 30 14:38:06 2019	(r356203)
+++ head/usr.sbin/inetd/inetd.c	Mon Dec 30 15:54:36 2019	(r356204)
@@ -1629,12 +1629,10 @@ more:
 			for (p = cp + 2; p && *p && isspace(*p); p++)
 				;
 			if (*p == '\0') {
-				if (policy)
-					free(policy);
+				free(policy);
 				policy = NULL;
 			} else if (ipsec_get_policylen(p) >= 0) {
-				if (policy)
-					free(policy);
+				free(policy);
 				policy = newstr(p);
 			} else {
 				syslog(LOG_ERR,
@@ -1969,6 +1967,7 @@ more:
 		LIST_INIT(&sep->se_conn[i]);
 #ifdef IPSEC
 	sep->se_policy = policy ? newstr(policy) : NULL;
+	free(policy);
 #endif
 	return (sep);
 }



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