[PATCH] Fix to return wrong pointer in slob

From: MinChan Kim
Date: Mon May 19 2008 - 09:12:26 EST



Although slob_alloc return NULL, __kmalloc_node returns NULL + align.
Because align always can be changed, it is very hard for debugging
problem of no page if it don't return NULL.

We have to return NULL in case of no page.

Signed-off-by: MinChan Kim <minchan.kim@xxxxxxxxx>
---
mm/slob.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/mm/slob.c b/mm/slob.c
index 6038cba..258d76d 100644
--- a/mm/slob.c
+++ b/mm/slob.c
@@ -469,9 +469,12 @@ void *__kmalloc_node(size_t size, gfp_t gfp, int node)
return ZERO_SIZE_PTR;

m = slob_alloc(size + align, gfp, align, node);
- if (m)
- *m = size;
- return (void *)m + align;
+ if (!m)
+ return NULL;
+ else {
+ *m = size;
+ return (void *)m + align;
+ }
} else {
void *ret;

--
1.5.4.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/