Skip to content

Commit 5ec93ad

Browse files
committed
netfilter: nftables: add catch-all set element support
jira VULN-429 subsystem-sync netfilter:nf_tables 4.18.0-511 commit-author Pablo Neira Ayuso <pablo@netfilter.org> commit aaa3104 upstream-diff We only take two small pieces of code from this patch. The netfilters folks made a big NO NO by making a commit with a new feature as well as adding some additional safety checks. Red Hat took the additional safety checks but without any of the rest of this rather large patch. Confusion reigns, some kernel developers ran around with their hair on fire for a couple of days, NBD they do that all the time anyway, but this commit has the necessary bits for backporting the remaining netfilter bits for this VULN ticket. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Greg Rose <g.v.rose@ciq.com>
1 parent 5647beb commit 5ec93ad

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

net/netfilter/nf_tables_api.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4630,7 +4630,8 @@ static int nf_tables_fill_setelem(struct sk_buff *skb,
46304630
if (nest == NULL)
46314631
goto nla_put_failure;
46324632

4633-
if (nft_data_dump(skb, NFTA_SET_ELEM_KEY, nft_set_ext_key(ext),
4633+
if (nft_set_ext_exists(ext, NFT_SET_EXT_KEY) &&
4634+
nft_data_dump(skb, NFTA_SET_ELEM_KEY, nft_set_ext_key(ext),
46344635
NFT_DATA_VALUE, set->klen) < 0)
46354636
goto nla_put_failure;
46364637

@@ -5093,7 +5094,8 @@ void *nft_set_elem_init(const struct nft_set *set,
50935094
ext = nft_set_elem_ext(set, elem);
50945095
nft_set_ext_init(ext, tmpl);
50955096

5096-
memcpy(nft_set_ext_key(ext), key, set->klen);
5097+
if (nft_set_ext_exists(ext, NFT_SET_EXT_KEY))
5098+
memcpy(nft_set_ext_key(ext), key, set->klen);
50975099
if (nft_set_ext_exists(ext, NFT_SET_EXT_KEY_END))
50985100
memcpy(nft_set_ext_key_end(ext), key_end, set->klen);
50995101
if (nft_set_ext_exists(ext, NFT_SET_EXT_DATA))

0 commit comments

Comments
 (0)