]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Fix bug 6707 - 3.4.1 segfault in parsing configs.
authorMarc Aurele La France <tsi@ualberta.ca>
Thu, 10 Sep 2009 16:52:11 +0000 (09:52 -0700)
committerJeremy Allison <jra@samba.org>
Thu, 10 Sep 2009 16:52:11 +0000 (09:52 -0700)
Fixes an occasional segfault caused by an out-of-bounds reference in config file parsing.

source3/lib/interfaces.c

index bc6c991f6f80fffc45941c95ba050cc1d75341b9..b4b380000a287fa0f1026fc4f0526c579941145a 100644 (file)
@@ -156,10 +156,6 @@ static int _get_interfaces(TALLOC_CTX *mem_ctx, struct iface_struct **pifaces)
        /* Loop through interfaces, looking for given IP address */
        for (ifptr = iflist; ifptr != NULL; ifptr = ifptr->ifa_next) {
 
-               memset(&ifaces[total], '\0', sizeof(ifaces[total]));
-
-               copy_size = sizeof(struct sockaddr_in);
-
                if (!ifptr->ifa_addr || !ifptr->ifa_netmask) {
                        continue;
                }
@@ -169,6 +165,10 @@ static int _get_interfaces(TALLOC_CTX *mem_ctx, struct iface_struct **pifaces)
                        continue;
                }
 
+               memset(&ifaces[total], '\0', sizeof(ifaces[total]));
+
+               copy_size = sizeof(struct sockaddr_in);
+
                ifaces[total].flags = ifptr->ifa_flags;
 
 #if defined(HAVE_IPV6)