netfilter: nf_tables: Add null check for nla_nest_start_noflag() in nft_dump_basechai...
authorGavrilov Ilia <Ilia.Gavrilov@infotecs.ru>
Wed, 24 May 2023 12:25:27 +0000 (12:25 +0000)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 6 Jun 2023 22:43:30 +0000 (00:43 +0200)
The nla_nest_start_noflag() function may fail and return NULL;
the return value needs to be checked.

Found by InfoTeCS on behalf of Linux Verification Center
(linuxtesting.org) with SVACE.

Fixes: d54725cd11a5 ("netfilter: nf_tables: support for multiple devices per netdev hook")
Signed-off-by: Gavrilov Ilia <Ilia.Gavrilov@infotecs.ru>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_tables_api.c

index dc56759..3445b8e 100644 (file)
@@ -1600,6 +1600,8 @@ static int nft_dump_basechain_hook(struct sk_buff *skb, int family,
 
        if (nft_base_chain_netdev(family, ops->hooknum)) {
                nest_devs = nla_nest_start_noflag(skb, NFTA_HOOK_DEVS);
+               if (!nest_devs)
+                       goto nla_put_failure;
 
                if (!hook_list)
                        hook_list = &basechain->hook_list;