Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Aug 2016 01:26:02 +0000 (UTC)
From:      Garrett Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r303695 - stable/9/sys/rpc
Message-ID:  <201608030126.u731Q2Hg018701@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Wed Aug  3 01:26:02 2016
New Revision: 303695
URL: https://svnweb.freebsd.org/changeset/base/303695

Log:
  MFstable/10 r303692:
  
  MFstable/11 r303691:
  
  MFC r302550,r302551,r302552,r302553:
  
  r302550:
  
  Deobfuscate cleanup path in clnt_dg_create(..)
  
  Similar to r300836 and r301800, cl and cu will always be non-NULL as they're
  allocated using the mem_alloc routines, which always use
  `malloc(..., M_WAITOK)`.
  
  Deobfuscating the cleanup path fixes a leak where if cl was NULL and
  cu was not, cu would not be free'd, and also removes a duplicate test for
  cl not being NULL.
  
  CID: 1007033, 1007344
  
  r302551:
  
  Deobfuscate cleanup path in clnt_vc_create(..)
  
  Similar to r300836, r301800, and r302550, cl and ct will always
  be non-NULL as they're allocated using the mem_alloc routines,
  which always use `malloc(..., M_WAITOK)`.
  
  CID: 1007342
  
  r302552:
  
  Convert `svc_xprt_alloc(..)` and `svc_xprt_free(..)`'s prototypes to
  ANSI C style prototypes
  
  r302553:
  
  Don't test for xpt not being NULL before calling svc_xprt_free(..)
  
  svc_xprt_alloc(..) will always return initialized memory as it uses
  mem_alloc(..) under the covers, which uses malloc(.., M_WAITOK, ..).
  
  CID: 1007341

Modified:
  stable/9/sys/rpc/clnt_dg.c
  stable/9/sys/rpc/clnt_vc.c
  stable/9/sys/rpc/svc.c
  stable/9/sys/rpc/svc_dg.c
Directory Properties:
  stable/9/   (props changed)
  stable/9/sys/   (props changed)

Modified: stable/9/sys/rpc/clnt_dg.c
==============================================================================
--- stable/9/sys/rpc/clnt_dg.c	Wed Aug  3 01:25:44 2016	(r303694)
+++ stable/9/sys/rpc/clnt_dg.c	Wed Aug  3 01:26:02 2016	(r303695)
@@ -313,11 +313,9 @@ recheck_socket:
 	cl->cl_netid = NULL;
 	return (cl);
 err2:
-	if (cl) {
-		mem_free(cl, sizeof (CLIENT));
-		if (cu)
-			mem_free(cu, sizeof (*cu));
-	}
+	mem_free(cl, sizeof (CLIENT));
+	mem_free(cu, sizeof (*cu));
+
 	return (NULL);
 }
 

Modified: stable/9/sys/rpc/clnt_vc.c
==============================================================================
--- stable/9/sys/rpc/clnt_vc.c	Wed Aug  3 01:25:44 2016	(r303694)
+++ stable/9/sys/rpc/clnt_vc.c	Wed Aug  3 01:26:02 2016	(r303695)
@@ -270,12 +270,10 @@ clnt_vc_create(
 	return (cl);
 
 err:
-	if (ct) {
-		mtx_destroy(&ct->ct_lock);
-		mem_free(ct, sizeof (struct ct_data));
-	}
-	if (cl)
-		mem_free(cl, sizeof (CLIENT));
+	mtx_destroy(&ct->ct_lock);
+	mem_free(ct, sizeof (struct ct_data));
+	mem_free(cl, sizeof (CLIENT));
+
 	return ((CLIENT *)NULL);
 }
 

Modified: stable/9/sys/rpc/svc.c
==============================================================================
--- stable/9/sys/rpc/svc.c	Wed Aug  3 01:25:44 2016	(r303694)
+++ stable/9/sys/rpc/svc.c	Wed Aug  3 01:26:02 2016	(r303695)
@@ -842,7 +842,7 @@ svcerr_progvers(struct svc_req *rqstp, r
  * parameters.
  */
 SVCXPRT *
-svc_xprt_alloc()
+svc_xprt_alloc(void)
 {
 	SVCXPRT *xprt;
 	SVCXPRT_EXT *ext;
@@ -859,8 +859,7 @@ svc_xprt_alloc()
  * Free a server transport structure.
  */
 void
-svc_xprt_free(xprt)
-	SVCXPRT *xprt;
+svc_xprt_free(SVCXPRT *xprt)
 {
 
 	mem_free(xprt->xp_p3, sizeof(SVCXPRT_EXT));

Modified: stable/9/sys/rpc/svc_dg.c
==============================================================================
--- stable/9/sys/rpc/svc_dg.c	Wed Aug  3 01:25:44 2016	(r303694)
+++ stable/9/sys/rpc/svc_dg.c	Wed Aug  3 01:26:02 2016	(r303695)
@@ -142,9 +142,8 @@ svc_dg_create(SVCPOOL *pool, struct sock
 	return (xprt);
 freedata:
 	(void) printf(svc_dg_str, __no_mem_str);
-	if (xprt) {
-		svc_xprt_free(xprt);
-	}
+	svc_xprt_free(xprt);
+
 	return (NULL);
 }
 



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