1#ifndef _LINUX_POISON_H
2#define _LINUX_POISON_H
3
4/********** include/linux/list.h **********/
5/*
6 * These are non-NULL pointers that will result in page faults
7 * under normal circumstances, used to verify that nobody uses
8 * non-initialized list entries.
9 */
10#define LIST_POISON1  ((void *) 0x00100100)
11#define LIST_POISON2  ((void *) 0x00200200)
12
13/********** mm/slab.c **********/
14/*
15 * Magic nums for obj red zoning.
16 * Placed in the first word before and the first word after an obj.
17 */
18#define	RED_INACTIVE	0x09F911029D74E35BULL	/* when obj is inactive */
19#define	RED_ACTIVE	0xD84156C5635688C0ULL	/* when obj is active */
20
21#define SLUB_RED_INACTIVE	0xbb
22#define SLUB_RED_ACTIVE		0xcc
23
24/* ...and for poisoning */
25#define	POISON_INUSE	0x5a	/* for use-uninitialised poisoning */
26#define POISON_FREE	0x6b	/* for use-after-free poisoning */
27#define	POISON_END	0xa5	/* end-byte of poisoning */
28
29/********** arch/$ARCH/mm/init.c **********/
30#define POISON_FREE_INITMEM	0xcc
31
32/********** arch/ia64/hp/common/sba_iommu.c **********/
33/*
34 * arch/ia64/hp/common/sba_iommu.c uses a 16-byte poison string with a
35 * value of "SBAIOMMU POISON\0" for spill-over poisoning.
36 */
37
38/********** fs/jbd/journal.c **********/
39#define JBD_POISON_FREE	0x5b
40
41/********** drivers/base/dmapool.c **********/
42#define	POOL_POISON_FREED	0xa7	/* !inuse */
43#define	POOL_POISON_ALLOCATED	0xa9	/* !initted */
44
45/********** drivers/atm/ **********/
46#define ATM_POISON_FREE		0x12
47#define ATM_POISON		0xdeadbeef
48
49/********** net/ **********/
50#define NEIGHBOR_DEAD		0xdeadbeef
51#define NETFILTER_LINK_POISON	0xdead57ac
52
53/********** kernel/mutexes **********/
54#define MUTEX_DEBUG_INIT	0x11
55#define MUTEX_DEBUG_FREE	0x22
56
57/********** security/ **********/
58#define KEY_DESTROY		0xbd
59
60/********** sound/oss/ **********/
61#define OSS_POISON_FREE		0xAB
62
63#endif
64