summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2022-08-22 11:06:39 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2022-08-24 07:43:21 +0200
commite02f0d3970404bfea385b6edb86f2d936db0ea2b (patch)
tree245d5bc7b84bb37e477ad99537efd2081ffb8c98 /net
parent01e4092d53bc4fe122a6e4b6d664adbd57528ca3 (diff)
downloadlinux-stable-e02f0d3970404bfea385b6edb86f2d936db0ea2b.tar.gz
linux-stable-e02f0d3970404bfea385b6edb86f2d936db0ea2b.tar.bz2
linux-stable-e02f0d3970404bfea385b6edb86f2d936db0ea2b.zip
netfilter: nf_tables: disallow binding to already bound chain
Update nft_data_init() to report EINVAL if chain is already bound. Fixes: d0e2c7de92c7 ("netfilter: nf_tables: add NFT_CHAIN_BINDING") Reported-by: Gwangun Jung <exsociety@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/nf_tables_api.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 72c066a33416..2ee50e23c9b7 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -9711,6 +9711,8 @@ static int nft_verdict_init(const struct nft_ctx *ctx, struct nft_data *data,
return PTR_ERR(chain);
if (nft_is_base_chain(chain))
return -EOPNOTSUPP;
+ if (nft_chain_is_bound(chain))
+ return -EINVAL;
if (desc->flags & NFT_DATA_DESC_SETELEM &&
chain->flags & NFT_CHAIN_BINDING)
return -EINVAL;