Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14e50c6a authored by Aaron Tomlin's avatar Aaron Tomlin Committed by Pekka Enberg
Browse files

mm: slab: Verify the nodeid passed to ____cache_alloc_node

If the nodeid is > num_online_nodes() this can cause an Oops and a
panic(). The purpose of this patch is to assert if this condition is
true to aid debugging efforts rather than some random NULL pointer
dereference or page fault.

This patch is in response to BZ#42967 [1].  Using VM_BUG_ON so it's used
only when CONFIG_DEBUG_VM is set, given that ____cache_alloc_node() is a
hot code path.

[1]: https://bugzilla.kernel.org/show_bug.cgi?id=42967



Signed-off-by: default avatarAaron Tomlin <atomlin@redhat.com>
Reviewed-by: default avatarRik van Riel <riel@redhat.com>
Acked-by: default avatarChristoph Lameter <cl@linux.com>
Acked-by: default avatarRafael Aquini <aquini@redhat.com>
Acked-by: default avatarDavid Rientjes <rientjes@google.com>
Signed-off-by: default avatarPekka Enberg <penberg@kernel.org>
parent 7cccd80b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3289,6 +3289,7 @@ static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags,
	void *obj;
	int x;

	VM_BUG_ON(nodeid > num_online_nodes());
	n = cachep->node[nodeid];
	BUG_ON(!n);