Messages in this thread Patch in this message | | | Date | Mon, 26 May 2008 18:39:18 +0300 (EEST) | From | Pekka J Enberg <> | Subject | [GIT PULL] SLUB/SLOB updates for 2.6.26 |
| |
Hi Linus,
Please pull the latest SLAB git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6.git for-linus
It has a fix for out-of-memory condition in SLOB and a new WARN_ON for SLUB to detect ksize() abuse.
Pekka
MinChan Kim (1): slob: Fix to return wrong pointer
Pekka Enberg (1): slub: ksize() abuse checks
mm/slob.c | 5 +++-- mm/slub.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/mm/slob.c b/mm/slob.c index 6038cba..a3ad667 100644 --- a/mm/slob.c +++ b/mm/slob.c @@ -469,8 +469,9 @@ 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; + if (!m) + return NULL; + *m = size; return (void *)m + align; } else { void *ret; diff --git a/mm/slub.c b/mm/slub.c index a505a82..0987d1c 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2726,9 +2726,10 @@ size_t ksize(const void *object) page = virt_to_head_page(object); - if (unlikely(!PageSlab(page))) + if (unlikely(!PageSlab(page))) { + WARN_ON(!PageCompound(page)); return PAGE_SIZE << compound_order(page); - + } s = page->slab; #ifdef CONFIG_SLUB_DEBUG
| |