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);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to