On Tue, Dec 29, 2020 at 04:20:04PM +0100, Sebastian Benoit wrote:
> 
> More missing checks, outside of usr.sbin.
> 
> Missing: isakmpd and ifconfig
> I have not yet looked at libc internal use, libpcap and regress/.
> 
> ok?

Looks good to me.
 
> 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 ||
> 

-- 
:wq Claudio

Reply via email to