Messages in this thread Patch in this message | | | From | "ethan.zhao" <> | Subject | [PATCH] mm/slab.c: check pointer slabp before using it in alloc_slabmgmt() | Date | Sun, 8 Dec 2013 17:38:53 +0800 |
| |
Move the NULL check of slabp to the right place before refer its memeber in function alloc_slabmgmt().
This bug may be introduced by rewriting of funcion kmemleak_scan_area(), the first parameter changed from slabp to &slabp->list.
Signed-off-by: ethan.zhao <ethan.kernel@gmail.com> --- mm/slab.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/slab.c b/mm/slab.c index 2580db0..b6d27bc 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -2612,6 +2612,8 @@ static struct slab *alloc_slabmgmt(struct kmem_cache *cachep, void *objp, /* Slab management obj is off-slab. */ slabp = kmem_cache_alloc_node(cachep->slabp_cache, local_flags, nodeid); + if (!slabp) + return NULL; /* * If the first object in the slab is leaked (it's allocated * but no one has a reference to it), we want to make sure @@ -2620,8 +2622,6 @@ static struct slab *alloc_slabmgmt(struct kmem_cache *cachep, void *objp, */ kmemleak_scan_area(&slabp->list, sizeof(struct list_head), local_flags); - if (!slabp) - return NULL; } else { slabp = objp + colour_off; colour_off += cachep->slab_size; -- 1.8.3.4 (Apple Git-47)
| |