summaryrefslogtreecommitdiff
path: root/zebra
diff options
context:
space:
mode:
authorpaul <paul>2006-01-17 17:59:11 +0000
committerpaul <paul>2006-01-17 17:59:11 +0000
commit61f42aed5e1cee1a853f92110d794a286995d203 (patch)
treee9eededc78bd39443ebf03565ad113c16f3ab49d /zebra
parentc713300ab429c8779be98ec3c8dc888821405d55 (diff)
[zebra] Defensive if_getaddrs bug fix.
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.
Diffstat (limited to 'zebra')
-rw-r--r--zebra/ChangeLog2
-rw-r--r--zebra/if_ioctl.c7
2 files changed, 9 insertions, 0 deletions
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index 9c014929..169f0a63 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -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>
diff --git a/zebra/if_ioctl.c b/zebra/if_ioctl.c
index b00a29cd..788184f8 100644
--- a/zebra/if_ioctl.c
+++ b/zebra/if_ioctl.c
@@ -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)
{