svn commit: r300972 - head/usr.sbin/rpcbind

Mark Johnston markj at FreeBSD.org
Sun May 29 19:46:35 UTC 2016


Author: markj
Date: Sun May 29 19:46:34 2016
New Revision: 300972
URL: https://svnweb.freebsd.org/changeset/base/300972

Log:
  Fix rpcbind init after r300941.
  
  - getaddrinfo() sets res = NULL on failure and freeaddrinfo() always
    dereferences its argument, so we should only free the address list after
    a successful call.
  - Address a second potential leak caused by getaddrinfo(AF_INET6)
    overwriting the address list returned by getaddrinfo(AF_INET).
  
  X-MFC-With:	r300941

Modified:
  head/usr.sbin/rpcbind/util.c

Modified: head/usr.sbin/rpcbind/util.c
==============================================================================
--- head/usr.sbin/rpcbind/util.c	Sun May 29 19:35:55 2016	(r300971)
+++ head/usr.sbin/rpcbind/util.c	Sun May 29 19:46:34 2016	(r300972)
@@ -338,6 +338,7 @@ network_init(void)
 			exit(1);
 		}
 		memcpy(local_in4, res->ai_addr, sizeof *local_in4);
+		freeaddrinfo(res);
 	}
 
 #ifdef INET6
@@ -354,6 +355,7 @@ network_init(void)
 			exit(1);
 		}
 		memcpy(local_in6, res->ai_addr, sizeof *local_in6);
+		freeaddrinfo(res);
 	}
 
 	/*
@@ -395,7 +397,6 @@ network_init(void)
 	freeifaddrs(ifp);
 #endif
 
-	freeaddrinfo(res);
 	/* close(s); */
 }
 


More information about the svn-src-all mailing list