From 638993f5ac9be841c4fc932ca768d26840dd6be6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Cr=C3=AAte?= Date: Wed, 26 Mar 2014 19:45:52 -0400 Subject: [PATCH] networkmonitornetlink: IN6_IS_ADDR_MC_LINKLOCAL is only guaranteed to work on struct in6_addr* https://bugzilla.gnome.org/show_bug.cgi?id=727119 --- gio/gnetworkmonitornetlink.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gio/gnetworkmonitornetlink.c b/gio/gnetworkmonitornetlink.c index fd916b3..21a7ad5 100644 --- a/gio/gnetworkmonitornetlink.c +++ b/gio/gnetworkmonitornetlink.c @@ -382,10 +382,13 @@ read_netlink_messages (GSocket *socket, * IPv6 link-local multicast routes, which are added and * removed all the time for some reason. */ +#define UNALIGNED_IN6_IS_ADDR_MC_LINKLOCAL(a) \ + ((a[0] == 0xff) && ((a[1] & 0xf) == 0x2)) + if (!nl->priv->dump_networks && rtmsg->rtm_family == AF_INET6 && rtmsg->rtm_dst_len != 0 && - IN6_IS_ADDR_MC_LINKLOCAL (dest)) + UNALIGNED_IN6_IS_ADDR_MC_LINKLOCAL (dest)) continue; if (msg->nlmsg_type == RTM_NEWROUTE) -- 2.7.4