]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix memory leak
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 28 Jan 2016 23:36:11 +0000 (00:36 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 28 Jan 2016 23:36:11 +0000 (00:36 +0100)
* process.c (connect_network_socket): Free previous sockaddr
before allocating a new one.

src/process.c

index 2f7668a555e07e80e8d3ef508d9d5e6f7975fe5d..b5d306f7de9dcb58eefdcb85844afaa0debc75ac 100644 (file)
@@ -3005,7 +3005,7 @@ void connect_network_socket (Lisp_Object proc, Lisp_Object ip_addresses)
   int xerrno = 0;
   Lisp_Object ip_address;
   int family;
-  struct sockaddr *sa;
+  struct sockaddr *sa = NULL;
   int ret;
   int addrlen;
   struct Lisp_Process *p = XPROCESS (proc);
@@ -3026,6 +3026,8 @@ void connect_network_socket (Lisp_Object proc, Lisp_Object ip_addresses)
 #endif
 
       addrlen = get_lisp_to_sockaddr_size (ip_address, &family);
+      if (sa)
+       free (sa);
       sa = alloca (addrlen);
       conv_lisp_to_sockaddr (family, ip_address, sa, addrlen);