Skip to content

Commit 65fbaf6

Browse files
committed
netfilter: nf_tables: relax NFTA_SET_ELEM_KEY_END set flags requirements
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2134544 Upstream Status: commit 96df836 commit 96df836 Author: Pablo Neira Ayuso <pablo@netfilter.org> Date: Mon Oct 17 14:12:58 2022 +0200 netfilter: nf_tables: relax NFTA_SET_ELEM_KEY_END set flags requirements Otherwise EINVAL is bogusly reported to userspace when deleting a set element. NFTA_SET_ELEM_KEY_END does not need to be set in case of: - insertion: if not present, start key is used as end key. - deletion: only start key needs to be specified, end key is ignored. Hence, relax the sanity check. Fixes: 88cccd9 ("netfilter: nf_tables: NFTA_SET_ELEM_KEY_END requires concat and interval flags") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Florian Westphal <fwestpha@redhat.com>
1 parent 27709a1 commit 65fbaf6

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

net/netfilter/nf_tables_api.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5735,8 +5735,9 @@ static bool nft_setelem_valid_key_end(const struct nft_set *set,
57355735
(NFT_SET_CONCAT | NFT_SET_INTERVAL)) {
57365736
if (flags & NFT_SET_ELEM_INTERVAL_END)
57375737
return false;
5738-
if (!nla[NFTA_SET_ELEM_KEY_END] &&
5739-
!(flags & NFT_SET_ELEM_CATCHALL))
5738+
5739+
if (nla[NFTA_SET_ELEM_KEY_END] &&
5740+
flags & NFT_SET_ELEM_CATCHALL)
57405741
return false;
57415742
} else {
57425743
if (nla[NFTA_SET_ELEM_KEY_END])

0 commit comments

Comments
 (0)