]> git.gsnw.org Git - fping.git/commitdiff
Update fping.c
authoraafbsd <45147422+aafbsd@users.noreply.github.com>
Sat, 7 Aug 2021 09:51:04 +0000 (11:51 +0200)
committerGitHub <noreply@github.com>
Sat, 7 Aug 2021 09:51:04 +0000 (11:51 +0200)
getnameinfo() was not called properly for IPv4 (didn't check v6).
Additionally, one might also want to check the result code, call gai_strerror() and inform the user if s.th. goes wrong

src/fping.c

index c6209c1147b7efd9cd30ed8ec9d56e9e79d4d75c..b8891933edaaf7e9e056939726c7e145eaaa63af 100644 (file)
@@ -2102,7 +2102,7 @@ int decode_icmp_ipv4(
         /* too short */
         if (verbose_flag) {
             char buf[INET6_ADDRSTRLEN];
-            getnameinfo((struct sockaddr*)&response_addr, sizeof(response_addr), buf, INET6_ADDRSTRLEN, NULL, 0, NI_NUMERICHOST);
+            getnameinfo( response_addr, sizeof( struct sockaddr_in ), buf, INET6_ADDRSTRLEN, NULL, 0, NI_NUMERICHOST);
             printf("received packet too short for ICMP (%d bytes from %s)\n", (int)reply_buf_len, buf);
         }
         return -1;
@@ -2135,7 +2135,7 @@ int decode_icmp_ipv4(
             return -1;
         }
 
-        getnameinfo(response_addr, response_addr_len, addr_ascii, INET6_ADDRSTRLEN, NULL, 0, NI_NUMERICHOST);
+        getnameinfo(response_addr, sizeof( struct sockaddr_in ), addr_ascii, INET6_ADDRSTRLEN, NULL, 0, NI_NUMERICHOST);
 
         switch (icp->icmp_type) {
         case ICMP_UNREACH: