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 <blackgod016...@gmail.com>

---
--- 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);
---

Reply via email to