This is impossible, because we pass a destination buffer that is appropriately
sized to hold an IPv6 address.

This is related to GitHub issue #1599.
---
 src/tools.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/tools.c b/src/tools.c
index b9a1121c6..ce82fea4a 100644
--- a/src/tools.c
+++ b/src/tools.c
@@ -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;
+       }
        if (map_ports)
                return memprintf(&out, "%s:%+d", buffer, port);
        else
-- 
2.36.1


Reply via email to