diff options
author | paul <paul> | 2006-01-17 17:59:11 +0000 |
---|---|---|
committer | paul <paul> | 2006-01-17 17:59:11 +0000 |
commit | 61f42aed5e1cee1a853f92110d794a286995d203 (patch) | |
tree | e9eededc78bd39443ebf03565ad113c16f3ab49d /zebra | |
parent | c713300ab429c8779be98ec3c8dc888821405d55 (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/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) { |