lkml.org 
[lkml]   [2013]   [Dec]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] mm/slab.c: check pointer slabp before using it in alloc_slabmgmt()
Date
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)


\
 
 \ /
  Last update: 2013-12-08 11:21    [W:0.102 / U:0.236 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site