summaryrefslogtreecommitdiff
path: root/src/libnet_link_bpf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnet_link_bpf.c')
-rw-r--r--src/libnet_link_bpf.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libnet_link_bpf.c b/src/libnet_link_bpf.c
index 83bac52..73049ab 100644
--- a/src/libnet_link_bpf.c
+++ b/src/libnet_link_bpf.c
@@ -309,8 +309,10 @@ libnet_get_hwaddr(libnet_t *l)
for (next = buf ; next < end ; next += ifm->ifm_msglen)
{
ifm = (struct if_msghdr *)next;
+
if (ifm->ifm_version != RTM_VERSION)
continue;
+
if (ifm->ifm_type == RTM_IFINFO)
{
sdl = (struct sockaddr_dl *)(ifm + 1);
@@ -336,12 +338,14 @@ libnet_get_hwaddr(libnet_t *l)
}
}
free(buf);
- if (next == end) {
+ if (next == end)
+ {
snprintf(l->err_buf, LIBNET_ERRBUF_SIZE,
"%s(): interface %s of known type not found.",
__func__, l->device);
return NULL;
}
+
return (&l->link_addr);
}