mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 06:25:52 +02:00
netfilter: nf_tables: validate NFT_SET_ELEM_INTERVAL_END
[ Upstream commitbffc124b6f] Only NFTA_SET_ELEM_KEY and NFTA_SET_ELEM_FLAGS make sense for elements whose NFT_SET_ELEM_INTERVAL_END flag is set on. Fixes:96518518cc("netfilter: add nftables") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
80a035ebef
commit
dc330d942c
|
|
@ -4351,14 +4351,20 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
|
|||
if (nla[NFTA_SET_ELEM_DATA] == NULL &&
|
||||
!(flags & NFT_SET_ELEM_INTERVAL_END))
|
||||
return -EINVAL;
|
||||
if (nla[NFTA_SET_ELEM_DATA] != NULL &&
|
||||
flags & NFT_SET_ELEM_INTERVAL_END)
|
||||
return -EINVAL;
|
||||
} else {
|
||||
if (nla[NFTA_SET_ELEM_DATA] != NULL)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if ((flags & NFT_SET_ELEM_INTERVAL_END) &&
|
||||
(nla[NFTA_SET_ELEM_DATA] ||
|
||||
nla[NFTA_SET_ELEM_OBJREF] ||
|
||||
nla[NFTA_SET_ELEM_TIMEOUT] ||
|
||||
nla[NFTA_SET_ELEM_EXPIRATION] ||
|
||||
nla[NFTA_SET_ELEM_USERDATA] ||
|
||||
nla[NFTA_SET_ELEM_EXPR]))
|
||||
return -EINVAL;
|
||||
|
||||
timeout = 0;
|
||||
if (nla[NFTA_SET_ELEM_TIMEOUT] != NULL) {
|
||||
if (!(set->flags & NFT_SET_TIMEOUT))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user