Commit 30c1d25b authored by Florian Westphal's avatar Florian Westphal
Browse files

netfilter: nft_set_pipapo: fix null deref for empty set



Blamed commit broke the check for a null scratch map:
  -  if (unlikely(!m || !*raw_cpu_ptr(m->scratch)))
  +  if (unlikely(!raw_cpu_ptr(m->scratch)))

This should have been "if (!*raw_ ...)".
Use the pattern of the avx2 version which is more readable.

This can only be reproduced if avx2 support isn't available.

Fixes: d8d871a3 ("netfilter: nft_set_pipapo: merge pipapo_get/lookup")
Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
parent d7e82594
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -426,10 +426,9 @@ static struct nft_pipapo_elem *pipapo_get(const struct nft_pipapo_match *m,

	local_bh_disable();

	if (unlikely(!raw_cpu_ptr(m->scratch)))
		goto out;

	scratch = *raw_cpu_ptr(m->scratch);
	if (unlikely(!scratch))
		goto out;

	map_index = scratch->map_index;