diff --git a/src/host_utils.c b/src/host_utils.c index 79d546188d977f3abeb46b15f5afc38177cedc69..5ec21ef365bd71e620bc480dbd793ce7cfa87c04 100644 --- a/src/host_utils.c +++ b/src/host_utils.c @@ -247,7 +247,13 @@ int host_get_netlink_ip(uint8_t *mac_addr, char *ipv4_str, char *device) ipaddr = rtnl_neigh_get_dst(neigh); if (ipaddr) { ip.family = nl_addr_get_family(ipaddr); - if (ip.family == AF_INET6 || ip.family == AF_INET) { + if (ip.family == AF_INET6) { + nl_object_put((struct nl_object *) neigh); + nobj = nl_cache_get_next(nobj); + neigh = (struct rtnl_neigh *)nobj; + continue; + } + if (ip.family == AF_INET) { memcpy(&ip.addr, nl_addr_get_binary_addr(ipaddr), nl_addr_get_len(ipaddr)); }