svn commit: samba r26406 - in branches/SAMBA_4_0: . source/lib/socket

jelmer at samba.org jelmer at samba.org
Tue Dec 11 22:23:34 GMT 2007


Author: jelmer
Date: 2007-12-11 22:23:34 +0000 (Tue, 11 Dec 2007)
New Revision: 26406

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26406

Log:
Make a copy to prevent modification of the loadparm configuration.
Modified:
   branches/SAMBA_4_0/
   branches/SAMBA_4_0/source/lib/socket/connect.c
   branches/SAMBA_4_0/source/lib/socket/interface.c


Changeset:

Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...

Modified: branches/SAMBA_4_0/source/lib/socket/connect.c
===================================================================
--- branches/SAMBA_4_0/source/lib/socket/connect.c	2007-12-11 22:23:31 UTC (rev 26405)
+++ branches/SAMBA_4_0/source/lib/socket/connect.c	2007-12-11 22:23:34 UTC (rev 26406)
@@ -123,7 +123,7 @@
 
 	set_blocking(socket_get_fd(sock), false);
 
-	if (resolve_ctx && server_address->addr && strcmp(sock->backend_name, "ipv4") == 0) {
+	if (resolve_ctx != NULL && server_address->addr && strcmp(sock->backend_name, "ipv4") == 0) {
 		struct nbt_name name;
 		struct composite_context *creq;
 		make_nbt_name_client(&name, server_address->addr);

Modified: branches/SAMBA_4_0/source/lib/socket/interface.c
===================================================================
--- branches/SAMBA_4_0/source/lib/socket/interface.c	2007-12-11 22:23:31 UTC (rev 26405)
+++ branches/SAMBA_4_0/source/lib/socket/interface.c	2007-12-11 22:23:34 UTC (rev 26406)
@@ -118,6 +118,7 @@
 {
 	struct in_addr ip, nmask;
 	char *p;
+	char *address;
 	int i, added=0;
 
 	ip.s_addr = 0;
@@ -154,10 +155,13 @@
 		return;
 	}
 
+	address = talloc_strdup(mem_ctx, token);
+	p = strchr_m(address,'/');
+
 	/* parse it into an IP address/netmasklength pair */
 	*p++ = 0;
 
-	ip.s_addr = interpret_addr2(token).s_addr;
+	ip.s_addr = interpret_addr2(address).s_addr;
 
 	if (strlen(p) > 2) {
 		nmask.s_addr = interpret_addr2(p).s_addr;
@@ -172,14 +176,17 @@
 			if (same_net(ip, probed_ifaces[i].ip, nmask)) {
 				add_interface(mem_ctx, probed_ifaces[i].ip, nmask,
 					      local_interfaces);
+				talloc_free(address);
 				return;
 			}
 		}
-		DEBUG(2,("Can't determine ip for broadcast address %s\n", token));
+		DEBUG(2,("Can't determine ip for broadcast address %s\n", address));
+		talloc_free(address);
 		return;
 	}
 
 	add_interface(mem_ctx, ip, nmask, local_interfaces);
+	talloc_free(address);
 }
 
 



More information about the samba-cvs mailing list