]> git.puffer.fish Git - matthieu/frr.git/commitdiff
[zebra] Defensive if_getaddrs bug fix.
authorpaul <paul>
Tue, 17 Jan 2006 17:59:11 +0000 (17:59 +0000)
committerpaul <paul>
Tue, 17 Jan 2006 17:59:11 +0000 (17:59 +0000)
2006-01-17 Gunnar Stigen <gunnar.stigen@axxessit.no>

* if_ioctl.c: (if_getaddrs) Be defensive about assuming
  that struct ifaddrs will have ifa_addr filled in.

zebra/ChangeLog
zebra/if_ioctl.c

index 9c01492946d7b97a82687551491cf3fef3a0bb8b..169f0a63adca74c13f8e4fe8e77b013af62a775c 100644 (file)
@@ -2,6 +2,8 @@
 
        * connected.c: (connected_up_ipv{4,6}) Include interface metric on
          connected routes.
+       * if_ioctl.c: (if_getaddrs) Be defensive about assuming
+         that struct ifaddrs will have ifa_addr filled in.
 
 2006-01-16 Paul Jakma <paul.jakma@sun.com>
 
index b00a29cdec9880090ef5bf35287f5c9f670c7b8f..788184f8f47c739f3c7d0c38acbe84d7e8ef4415 100644 (file)
@@ -228,6 +228,13 @@ if_getaddrs (void)
 
   for (ifapfree = ifap; ifap; ifap = ifap->ifa_next)
     {
+      if (ifap->ifa_addr == NULL)
+        {
+          zlog_err ("%s: nonsensical ifaddr with NULL ifa_addr, ifname %s",
+                    __func__, (ifap->ifa_name ? ifap->ifa_name : "(null)"));
+          continue;
+        }
+       
       ifp = if_lookup_by_name (ifap->ifa_name);
       if (ifp == NULL)
        {