]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
netlink: Fix segfault when using --echo flag
authorPhil Sutter <phil@nwl.cc>
Mon, 14 Aug 2017 23:43:03 +0000 (01:43 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 15 Aug 2017 10:26:36 +0000 (12:26 +0200)
Commit 07b45939972eb ("src: introduce struct nft_cache") added cache
pointer to struct netlink_mon_handler and the code assumes it is never
NULL. Therefore initialize it in the dummy version of
netlink_mon_handler in netlink_echo_callback().

Fixes: b99c4d072d996 ("Implement --echo option")
Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/netlink.c

index 8aef8d9ab4070adc7251ef619c1aa1adb8c575cc..f631c26b2b9ca53add0be0972421f89c1c866502 100644 (file)
@@ -3075,12 +3075,14 @@ static int netlink_events_cb(const struct nlmsghdr *nlh, void *data)
 
 int netlink_echo_callback(const struct nlmsghdr *nlh, void *data)
 {
+       struct netlink_ctx *ctx = data;
        struct netlink_mon_handler echo_monh = {
                .format = NFTNL_OUTPUT_DEFAULT,
-               .ctx = data,
+               .ctx = ctx,
                .loc = &netlink_location,
                .monitor_flags = 0xffffffff,
                .cache_needed = true,
+               .cache = ctx->cache,
        };
 
        if (!echo_monh.ctx->octx->echo)