diff --git a/sbin/ifconfig/af_inet.c b/sbin/ifconfig/af_inet.c index 4a8e3a1ae534..7678daa1aa97 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 6112f2bd4462..2aae38225235 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';