aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/poison.h
diff options
context:
space:
mode:
authorDavid Rientjes <rientjes@google.com>2009-09-21 17:04:31 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-22 07:17:47 -0700
commit19da3dd157f8db6fe727ff268dab4791d55a6371 (patch)
tree4259074638b384e765c73542d74dd8f44750068b /include/linux/poison.h
parente6de3988aa52debb25a427d085061f3bf1181d54 (diff)
downloadkernel_goldelico_gta04-19da3dd157f8db6fe727ff268dab4791d55a6371.zip
kernel_goldelico_gta04-19da3dd157f8db6fe727ff268dab4791d55a6371.tar.gz
kernel_goldelico_gta04-19da3dd157f8db6fe727ff268dab4791d55a6371.tar.bz2
flex_array: poison free elements
Newly initialized flex_array's and/or flex_array_part's are now poisoned with a new poison value, FLEX_ARRAY_FREE. It's value is similar to POISON_FREE used in the various slab allocators, but is different to distinguish between flex array's poisoned kmem and slab allocator poisoned kmem. This will allow us to identify flex_array_part's that only contain free elements (and free them with an addition to the flex_array API). This could also be extended in the future to identify `get' uses on elements that have not been `put'. If __GFP_ZERO is passed for a part's gfp mask, the poisoning is avoided. These elements are considered to be in-use since they have been initialized. Signed-off-by: David Rientjes <rientjes@google.com> Cc: Dave Hansen <dave@linux.vnet.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/poison.h')
-rw-r--r--include/linux/poison.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/poison.h b/include/linux/poison.h
index 6729f7d..7fc194a 100644
--- a/include/linux/poison.h
+++ b/include/linux/poison.h
@@ -65,6 +65,9 @@
#define MUTEX_DEBUG_INIT 0x11
#define MUTEX_DEBUG_FREE 0x22
+/********** lib/flex_array.c **********/
+#define FLEX_ARRAY_FREE 0x6c /* for use-after-free poisoning */
+
/********** security/ **********/
#define KEY_DESTROY 0xbd