svn commit: r303691 - stable/11/sys/rpc

Garrett Cooper ngie at FreeBSD.org
Wed Aug 3 01:06:53 UTC 2016


Author: ngie
Date: Wed Aug  3 01:06:51 2016
New Revision: 303691
URL: https://svnweb.freebsd.org/changeset/base/303691

Log:
  MFC r302550,r302551,r302552,r302553:
  
  Approved by: re (gjb)
  
  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/11/sys/rpc/clnt_dg.c
  stable/11/sys/rpc/clnt_vc.c
  stable/11/sys/rpc/svc.c
  stable/11/sys/rpc/svc_dg.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/rpc/clnt_dg.c
==============================================================================
--- stable/11/sys/rpc/clnt_dg.c	Wed Aug  3 00:19:52 2016	(r303690)
+++ stable/11/sys/rpc/clnt_dg.c	Wed Aug  3 01:06:51 2016	(r303691)
@@ -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/11/sys/rpc/clnt_vc.c
==============================================================================
--- stable/11/sys/rpc/clnt_vc.c	Wed Aug  3 00:19:52 2016	(r303690)
+++ stable/11/sys/rpc/clnt_vc.c	Wed Aug  3 01:06:51 2016	(r303691)
@@ -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/11/sys/rpc/svc.c
==============================================================================
--- stable/11/sys/rpc/svc.c	Wed Aug  3 00:19:52 2016	(r303690)
+++ stable/11/sys/rpc/svc.c	Wed Aug  3 01:06:51 2016	(r303691)
@@ -841,7 +841,7 @@ svcerr_progvers(struct svc_req *rqstp, r
  * parameters.
  */
 SVCXPRT *
-svc_xprt_alloc()
+svc_xprt_alloc(void)
 {
 	SVCXPRT *xprt;
 	SVCXPRT_EXT *ext;
@@ -858,8 +858,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/11/sys/rpc/svc_dg.c
==============================================================================
--- stable/11/sys/rpc/svc_dg.c	Wed Aug  3 00:19:52 2016	(r303690)
+++ stable/11/sys/rpc/svc_dg.c	Wed Aug  3 01:06:51 2016	(r303691)
@@ -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);
 }
 


More information about the svn-src-all mailing list