More missing checks, outside of usr.sbin.

Missing: isakmpd and ifconfig
I have not yet looked at libc internal use, libpcap and regress/.

ok?

diff --git sbin/iked/parse.y sbin/iked/parse.y
index aedbb74f3fd..b02ff55d4e7 100644
--- sbin/iked/parse.y
+++ sbin/iked/parse.y
@@ -2166,7 +2166,8 @@ ifa_load(void)
                err(1, "ifa_load: getifaddrs");
 
        for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
-               if (!(ifa->ifa_addr->sa_family == AF_INET ||
+               if (ifa->ifa_addr == NULL ||
+                   !(ifa->ifa_addr->sa_family == AF_INET ||
                    ifa->ifa_addr->sa_family == AF_INET6 ||
                    ifa->ifa_addr->sa_family == AF_LINK))
                        continue;
diff --git sbin/ipsecctl/parse.y sbin/ipsecctl/parse.y
index d61f6d5e151..5121d8bb655 100644
--- sbin/ipsecctl/parse.y
+++ sbin/ipsecctl/parse.y
@@ -1827,7 +1827,8 @@ ifa_load(void)
                err(1, "ifa_load: getifaddrs");
 
        for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
-               if (!(ifa->ifa_addr->sa_family == AF_INET ||
+               if (ifa->ifa_addr == NULL ||
+                   !(ifa->ifa_addr->sa_family == AF_INET ||
                    ifa->ifa_addr->sa_family == AF_INET6 ||
                    ifa->ifa_addr->sa_family == AF_LINK))
                        continue;
diff --git sbin/pfctl/pfctl_parser.c sbin/pfctl/pfctl_parser.c
index 32b14d8b4cb..164b0639a48 100644
--- sbin/pfctl/pfctl_parser.c
+++ sbin/pfctl/pfctl_parser.c
@@ -1352,7 +1352,8 @@ ifa_load(void)
                err(1, "getifaddrs");
 
        for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
-               if (!(ifa->ifa_addr->sa_family == AF_INET ||
+               if (ifa->ifa_addr == NULL ||
+                   !(ifa->ifa_addr->sa_family == AF_INET ||
                    ifa->ifa_addr->sa_family == AF_INET6 ||
                    ifa->ifa_addr->sa_family == AF_LINK))
                                continue;
diff --git sbin/route/route.c sbin/route/route.c
index c13f5b6be07..e1d31902e98 100644
--- sbin/route/route.c
+++ sbin/route/route.c
@@ -506,7 +506,8 @@ setsource(int argc, char **argv)
                for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
                        if (if_nametoindex(ifa->ifa_name) != ifindex)
                                continue;
-                       if (!(ifa->ifa_addr->sa_family == AF_INET ||
+                       if (ifa->ifa_addr == NULL ||
+                           !(ifa->ifa_addr->sa_family == AF_INET ||
                            ifa->ifa_addr->sa_family == AF_INET6))
                                continue;
                        if ((af != AF_UNSPEC) &&
diff --git sbin/slaacd/frontend.c sbin/slaacd/frontend.c
index 6bdfc92339d..0e877d03bdb 100644
--- sbin/slaacd/frontend.c
+++ sbin/slaacd/frontend.c
@@ -584,6 +584,8 @@ update_autoconf_addresses(uint32_t if_index, char* if_name)
        for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) {
                if (strcmp(if_name, ifa->ifa_name) != 0)
                        continue;
+               if (ifa->ifa_addr == NULL)
+                       continue;
 
                if (ifa->ifa_addr->sa_family == AF_LINK)
                        imsg_link_state.link_state =
@@ -937,6 +939,8 @@ get_lladdr(char *if_name, struct ether_addr *mac, struct 
sockaddr_in6 *ll)
        for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) {
                if (strcmp(if_name, ifa->ifa_name) != 0)
                        continue;
+               if (ifa->ifa_addr == NULL)
+                       continue;
 
                switch(ifa->ifa_addr->sa_family) {
                case AF_LINK:
diff --git usr.bin/netstat/route.c usr.bin/netstat/route.c
index 9e8e22ba54b..1aef3f9cd3c 100644
--- usr.bin/netstat/route.c
+++ usr.bin/netstat/route.c
@@ -368,7 +368,8 @@ rdomainpr(void)
 
        getifaddrs(&ifap);
        for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
-               if (ifa->ifa_addr->sa_family != AF_LINK)
+               if (ifa->ifa_addr == NULL ||
+                   ifa->ifa_addr->sa_family != AF_LINK)
                        continue;
                ifd = ifa->ifa_data;
                if (rdom_if[ifd->ifi_rdomain] == NULL) {
diff --git usr.bin/rusers/rusers.c usr.bin/rusers/rusers.c
index 53f50a8ce6a..124ebd6cc9c 100644
--- usr.bin/rusers/rusers.c
+++ usr.bin/rusers/rusers.c
@@ -558,7 +558,8 @@ allhosts(void)
         */
        for (i = 0; i < 6; i++) {
                for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
-                       if (ifa->ifa_addr->sa_family != AF_INET ||
+                       if (ifa->ifa_addr == NULL ||
+                           ifa->ifa_addr->sa_family != AF_INET ||
                            !(ifa->ifa_flags & IFF_BROADCAST) ||
                            !(ifa->ifa_flags & IFF_UP) ||
                            ifa->ifa_broadaddr == NULL ||

Reply via email to