[patch 4/4] change slab poison pattern

From: Akinobu Mita
Date: Mon Apr 24 2006 - 04:35:11 EST


kref debugging cannot detect kref_put() with unreferenced object,
when the structure including kref is allocated by slab
and slab debugging config is enabled.

Because use-after-free poisoning make kref counter signed value.
So this patch prevents it by changing poisoning pattern.

Signed-off-by: Akinobu Mita <mita@xxxxxxxxxxxxxxxx>
CC: Matt Mackall <mpm@xxxxxxxxxxx>
CC: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx>
CC: Pekka J Enberg <penberg@xxxxxxxxxxxxxx>

mm/slab.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)

Index: 2.6-git/mm/slab.c
===================================================================
--- 2.6-git.orig/mm/slab.c
+++ 2.6-git/mm/slab.c
@@ -503,9 +503,9 @@ struct kmem_cache {
#define RED_ACTIVE 0x170FC2A5UL /* when obj is active */

/* ...and for poisoning */
-#define POISON_INUSE 0x5a /* for use-uninitialised poisoning */
-#define POISON_FREE 0x6b /* for use-after-free poisoning */
-#define POISON_END 0xa5 /* end-byte of poisoning */
+#define POISON_INUSE 0xa5 /* for use-uninitialised poisoning */
+#define POISON_FREE 0xb6 /* for use-after-free poisoning */
+#define POISON_END 0xab /* end-byte of poisoning */

/*
* memory layout of objects:

--
-
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/