]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
src: netlink: netlink_delinearize_table() may return NULL
authorPhil Sutter <phil@nwl.cc>
Fri, 8 Aug 2025 12:21:41 +0000 (14:21 +0200)
committerPhil Sutter <phil@nwl.cc>
Wed, 13 Aug 2025 15:34:33 +0000 (17:34 +0200)
Catch the error condition in callers to avoid crashes.

Fixes: c156232a530b3 ("src: add comment support when adding tables")
Signed-off-by: Phil Sutter <phil@nwl.cc>
src/monitor.c
src/netlink.c

index e0f97b4a204dda193ded7b0ff9b10f66a842aac9..da1ad880f0c83af8bcc8aecc6038cef79e8c2325 100644 (file)
@@ -237,6 +237,10 @@ static int netlink_events_table_cb(const struct nlmsghdr *nlh, int type,
 
        nlt = netlink_table_alloc(nlh);
        t = netlink_delinearize_table(monh->ctx, nlt);
+       if (!t) {
+               nftnl_table_free(nlt);
+               return MNL_CB_ERROR;
+       }
        cmd = netlink_msg2cmd(type, nlh->nlmsg_flags);
 
        switch (monh->format) {
index f2f4c5ea8c87b67bb94dd1eb97074860339217cb..94cbcbfc6c094f39051cff7a0e35718c3b3ecb64 100644 (file)
@@ -841,7 +841,8 @@ static int list_table_cb(struct nftnl_table *nlt, void *arg)
        struct table *table;
 
        table = netlink_delinearize_table(ctx, nlt);
-       list_add_tail(&table->list, &ctx->list);
+       if (table)
+               list_add_tail(&table->list, &ctx->list);
 
        return 0;
 }