]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
netlink: don't bug on unknown events
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 14 Nov 2014 17:36:14 +0000 (18:36 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 14 Nov 2014 17:42:56 +0000 (18:42 +0100)
We will likely have new ones in the future, silently skip them. If the
user wants to see them, it just needs to upgrade.

This is currently causing us problems with kernels that deliver the
generation counter event.

term1# nft add table test

term2# nft monitor
nft: netlink.c:2063: netlink_events_cb: Assertion `0' failed.
Aborted

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/netlink.c

index 33e77ab06d6d07637f6d4659869efc7bf0ca477c..23f38b030451e1db109eab6cbf0a42313f490704 100644 (file)
@@ -2030,7 +2030,7 @@ static void netlink_events_cache_update(struct netlink_mon_handler *monh,
 static int netlink_events_cb(const struct nlmsghdr *nlh, void *data)
 {
        int ret = MNL_CB_OK;
-       int type = nlh->nlmsg_type & 0xFF;
+       uint16_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
        struct netlink_mon_handler *monh = (struct netlink_mon_handler *)data;
 
        netlink_events_cache_update(monh, nlh, type);
@@ -2059,9 +2059,6 @@ static int netlink_events_cb(const struct nlmsghdr *nlh, void *data)
        case NFT_MSG_DELRULE:
                ret = netlink_events_rule_cb(nlh, type, monh);
                break;
-       default:
-               BUG("Unknow event received from netlink.\n");
-               break;
        }
 
        return ret;