diff options
-rw-r--r-- | zebra/ChangeLog | 2 | ||||
-rw-r--r-- | zebra/if_ioctl.c | 7 |
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) { |