You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
slub: Do not dereference NULL pointer in node_match
The variables accessed in slab_alloc are volatile and therefore the page pointer passed to node_match can be NULL. The processing of data in slab_alloc is tentative until either the cmpxhchg succeeds or the __slab_alloc slowpath is invoked. Both are able to perform the same allocation from the freelist. Check for the NULL pointer in node_match. A false positive will lead to a retry of the loop in __slab_alloc. Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
This commit is contained in:
committed by
Pekka Enberg
parent
338b264229
commit
4d7868e647
@@ -2042,7 +2042,7 @@ static void flush_all(struct kmem_cache *s)
|
||||
static inline int node_match(struct page *page, int node)
|
||||
{
|
||||
#ifdef CONFIG_NUMA
|
||||
if (node != NUMA_NO_NODE && page_to_nid(page) != node)
|
||||
if (!page || (node != NUMA_NO_NODE && page_to_nid(page) != node))
|
||||
return 0;
|
||||
#endif
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user