]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
netfilter: nf_tables: bogus EOPNOTSUPP on basechain update
authorPablo Neira Ayuso <pablo@netfilter.org>
Mon, 4 Nov 2019 13:52:41 +0000 (14:52 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 4 Nov 2019 19:58:35 +0000 (20:58 +0100)
Userspace never includes the NFT_BASE_CHAIN flag, this flag is inferred
from the NFTA_CHAIN_HOOK atribute. The chain update path does not allow
to update flags at this stage, the existing sanity check bogusly hits
EOPNOTSUPP in the basechain case if the offload flag is set on.

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

index aa26841ad9a103798acf2abb26382bd12b44715e..712a428509add2c28261b9daf537abe8f9d71311 100644 (file)
@@ -1922,6 +1922,7 @@ static int nf_tables_newchain(struct net *net, struct sock *nlsk,
                if (nlh->nlmsg_flags & NLM_F_REPLACE)
                        return -EOPNOTSUPP;
 
+               flags |= chain->flags & NFT_BASE_CHAIN;
                return nf_tables_updchain(&ctx, genmask, policy, flags);
        }