summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system-linux.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/system-linux.c b/system-linux.c
index e1343a5..eb73e95 100644
--- a/system-linux.c
+++ b/system-linux.c
@@ -382,8 +382,13 @@ static bool check_ifaddr(struct nlmsghdr *hdr, int ifindex)
static bool check_route(struct nlmsghdr *hdr, int ifindex)
{
+ struct rtmsg *r = NLMSG_DATA(hdr);
struct nlattr *tb[__RTA_MAX];
+ if (r->rtm_protocol == RTPROT_KERNEL &&
+ r->rtm_family == AF_INET6)
+ return false;
+
nlmsg_parse(hdr, sizeof(struct rtmsg), tb, __RTA_MAX - 1, NULL);
if (!tb[RTA_OIF])
return false;