diff options
-rw-r--r-- | sbin/ifconfig/af_inet.c | 4 | ||||
-rw-r--r-- | sbin/ifconfig/af_inet6.c | 10 |
2 files changed, 10 insertions, 4 deletions
diff --git a/sbin/ifconfig/af_inet.c b/sbin/ifconfig/af_inet.c index 4a8e3a1..7678daa 100644 --- a/sbin/ifconfig/af_inet.c +++ b/sbin/ifconfig/af_inet.c @@ -153,11 +153,15 @@ in_status_tunnel(int s) if (ioctl(s, SIOCGIFPSRCADDR, (caddr_t)&ifr) < 0) return; + if (sa->sa_family != AF_INET) + return; if (getnameinfo(sa, sa->sa_len, src, sizeof(src), 0, 0, NI_NUMERICHOST) != 0) src[0] = '\0'; if (ioctl(s, SIOCGIFPDSTADDR, (caddr_t)&ifr) < 0) return; + if (sa->sa_family != AF_INET) + return; if (getnameinfo(sa, sa->sa_len, dst, sizeof(dst), 0, 0, NI_NUMERICHOST) != 0) dst[0] = '\0'; diff --git a/sbin/ifconfig/af_inet6.c b/sbin/ifconfig/af_inet6.c index 6112f2b..2aae382 100644 --- a/sbin/ifconfig/af_inet6.c +++ b/sbin/ifconfig/af_inet6.c @@ -456,16 +456,18 @@ in6_status_tunnel(int s) if (ioctl(s, SIOCGIFPSRCADDR_IN6, (caddr_t)&in6_ifr) < 0) return; - if (sa->sa_family == AF_INET6) - in6_fillscopeid(&in6_ifr.ifr_addr); + if (sa->sa_family != AF_INET6) + return; + in6_fillscopeid(&in6_ifr.ifr_addr); if (getnameinfo(sa, sa->sa_len, src, sizeof(src), 0, 0, NI_NUMERICHOST) != 0) src[0] = '\0'; if (ioctl(s, SIOCGIFPDSTADDR_IN6, (caddr_t)&in6_ifr) < 0) return; - if (sa->sa_family == AF_INET6) - in6_fillscopeid(&in6_ifr.ifr_addr); + if (sa->sa_family != AF_INET6) + return; + in6_fillscopeid(&in6_ifr.ifr_addr); if (getnameinfo(sa, sa->sa_len, dst, sizeof(dst), 0, 0, NI_NUMERICHOST) != 0) dst[0] = '\0'; |