Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
1: #ifndef _LINUX_POISON_H 2: #define _LINUX_POISON_H 3: 4: /********** include/linux/list.h **********/ 5: 6: /* 7: * Architectures might want to move the poison pointer offset 8: * into some well-recognized area such as 0xdead000000000000, 9: * that is also not mappable by user-space exploits: 10: */ 11: #ifdef CONFIG_ILLEGAL_POINTER_VALUE 12: # define POISON_POINTER_DELTA _AC(CONFIG_ILLEGAL_POINTER_VALUE, UL) 13: #else 14: # define POISON_POINTER_DELTA 0 15: #endif 16: 17: /* 18: * These are non-NULL pointers that will result in page faults 19: * under normal circumstances, used to verify that nobody uses 20: * non-initialized list entries. 21: */ 22: #define LIST_POISON1 ((void *) 0x00100100 + POISON_POINTER_DELTA) 23: #define LIST_POISON2 ((void *) 0x00200200 + POISON_POINTER_DELTA) 24: 25: /********** include/linux/timer.h **********/ 26: /* 27: * Magic number "tsta" to indicate a static timer initializer 28: * for the object debugging code. 29: */ 30: #define TIMER_ENTRY_STATIC ((void *) 0x74737461) 31: 32: /********** mm/debug-pagealloc.c **********/ 33: #define PAGE_POISON 0xaa 34: 35: /********** mm/slab.c **********/ 36: /* 37: * Magic nums for obj red zoning. 38: * Placed in the first word before and the first word after an obj. 39: */ 40: #define RED_INACTIVE 0x09F911029D74E35BULL /* when obj is inactive */ 41: #define RED_ACTIVE 0xD84156C5635688C0ULL /* when obj is active */ 42: 43: #define SLUB_RED_INACTIVE 0xbb 44: #define SLUB_RED_ACTIVE 0xcc 45: 46: /* ...and for poisoning */ 47: #define POISON_INUSE 0x5a /* for use-uninitialised poisoning */ 48: #define POISON_FREE 0x6b /* for use-after-free poisoning */ 49: #define POISON_END 0xa5 /* end-byte of poisoning */ 50: 51: /********** arch/$ARCH/mm/init.c **********/ 52: #define POISON_FREE_INITMEM 0xcc 53: 54: /********** arch/ia64/hp/common/sba_iommu.c **********/ 55: /* 56: * arch/ia64/hp/common/sba_iommu.c uses a 16-byte poison string with a 57: * value of "SBAIOMMU POISON\0" for spill-over poisoning. 58: */ 59: 60: /********** fs/jbd/journal.c **********/ 61: #define JBD_POISON_FREE 0x5b 62: #define JBD2_POISON_FREE 0x5c 63: 64: /********** drivers/base/dmapool.c **********/ 65: #define POOL_POISON_FREED 0xa7 /* !inuse */ 66: #define POOL_POISON_ALLOCATED 0xa9 /* !initted */ 67: 68: /********** drivers/atm/ **********/ 69: #define ATM_POISON_FREE 0x12 70: #define ATM_POISON 0xdeadbeef 71: 72: /********** net/ **********/ 73: #define NEIGHBOR_DEAD 0xdeadbeef 74: #define NETFILTER_LINK_POISON 0xdead57ac 75: 76: /********** kernel/mutexes **********/ 77: #define MUTEX_DEBUG_INIT 0x11 78: #define MUTEX_DEBUG_FREE 0x22 79: 80: /********** lib/flex_array.c **********/ 81: #define FLEX_ARRAY_FREE 0x6c /* for use-after-free poisoning */ 82: 83: /********** security/ **********/ 84: #define KEY_DESTROY 0xbd 85: 86: /********** sound/oss/ **********/ 87: #define OSS_POISON_FREE 0xAB 88: 89: #endif 90: