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