From: Pablo Neira Ayuso Date: Mon, 4 Nov 2019 13:52:41 +0000 (+0100) Subject: netfilter: nf_tables: bogus EOPNOTSUPP on basechain update X-Git-Tag: v5.15~5189^2~17^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1ed012f6fd83e7ee7efd22e2c32f23efff015b30;p=platform%2Fkernel%2Flinux-starfive.git netfilter: nf_tables: bogus EOPNOTSUPP on basechain update 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 --- diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index aa26841..712a428 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -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); }