Try and fix segfault found by Guenther on Fedora. Fedora
authorJeremy Allison <jra@samba.org>
Fri, 12 Oct 2007 01:03:12 +0000 (18:03 -0700)
committerJeremy Allison <jra@samba.org>
Fri, 12 Oct 2007 01:03:12 +0000 (18:03 -0700)
seems to return bogus values for the interface entries on
vmnet and tun interfaces.
Jeremy.

source/lib/interfaces.c

index c56155c64e75fefdecfd42ae3f3042e5ead0f42d..e98ea4628274ed88191f3b49ad7a45f4fbb92318 100644 (file)
@@ -135,11 +135,14 @@ static int _get_interfaces(struct iface_struct *ifaces, int max_interfaces)
 
                memcpy(&ifaces[total].ip, ifptr->ifa_addr, copy_size);
                memcpy(&ifaces[total].netmask, ifptr->ifa_netmask, copy_size);
-               if (ifaces[total].flags & IFF_BROADCAST) {
+
+               if ((ifaces[total].flags & IFF_BROADCAST) &&
+                               ifptr->ifa_broadaddr) {
                        memcpy(&ifaces[total].bcast,
                                ifptr->ifa_broadaddr,
                                copy_size);
-               } else if (ifaces[total].flags & IFF_POINTOPOINT) {
+               } else if ((ifaces[total].flags & IFF_POINTOPOINT) &&
+                              ifptr->ifa_dstaddr ) {
                        memcpy(&ifaces[total].bcast,
                                ifptr->ifa_dstaddr,
                                copy_size);