luci-lib-nixio: pass exact sockaddr length to getnameinfo()
[project/luci.git] / libs / luci-lib-nixio / src / address.c
index 4fd557d..8ab4fa8 100644 (file)
@@ -331,7 +331,9 @@ static int nixio_getnameinfo(lua_State *L) {
 
        nixio__addr_write(&addr, (struct sockaddr *)&saddr);
 
-       int res = getnameinfo((struct sockaddr *)&saddr, sizeof(saddr),
+       int res = getnameinfo((struct sockaddr *)&saddr,
+        (saddr.ss_family == AF_INET)
+         ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6),
         host, sizeof(host), NULL, 0, NI_NAMEREQD);
 
 #ifdef __linux__