On Sun, May 22, 2022 at 01:06:28PM +0200, Tim Duesterhus wrote:
> @@ -1374,7 +1374,10 @@ char * sa2str(const struct sockaddr_storage *addr, int 
> port, int map_ports)
>       default:
>               return NULL;
>       }
> -     inet_ntop(addr->ss_family, ptr, buffer, sizeof(buffer));
> +     if (inet_ntop(addr->ss_family, ptr, buffer, sizeof(buffer)) == NULL) {
> +             BUG_ON("inet_ntop failed to convert");
> +             return NULL;
> +     }

Hmm no, please at least check errno for ENOSPC on this one, because some
minimalistic libcs (or older ones) properly report EAFNOSUPPORT when
passed AF_INET6 addresses that they do not support, and we don't want
to crash at runtime when an address is updated..

Maybe such a variant instead ?

-       inet_ntop(addr->ss_family, ptr, buffer, sizeof(buffer));
+       if (inet_ntop(addr->ss_family, ptr, buffer, sizeof(buffer)) == NULL) {
+               BUG_ON(erro == ENOSPC);
+               return NULL;
+       }

Willy

Reply via email to