Pointer s is allocated with kmem_cache_zalloc(). And s is used in the
follwoing codes. However, when kmem_cache_zalloc fails, using s will
cause null pointer dereference and the kernel will go wrong. Thus we
check whether the kmem_cache_zalloc fails.
Signed-off-by: Gen Zhang <[email protected]>
---
--- mm/slub.c
+++ mm/slub.c
@@ -4201,6 +4201,8 @@ static struct kmem_cache * __init bootst
{
int node;
struct kmem_cache *s = kmem_cache_zalloc(kmem_cache, GFP_NOWAIT);
+ if (!s)
+ return ERR_PTR(-ENOMEM);
struct kmem_cache_node *n;
memcpy(s, static_cache, kmem_cache->object_size);
---