~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/poison.h

Version: ~ [ linux-5.3 ] ~ [ linux-5.2.14 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.72 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.143 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.192 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.192 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.73 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 *) 0x100 + POISON_POINTER_DELTA)
 23 #define LIST_POISON2  ((void *) 0x200 + 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 *) 0x300 + POISON_POINTER_DELTA)
 31 
 32 /********** mm/debug-pagealloc.c **********/
 33 #ifdef CONFIG_PAGE_POISONING_ZERO
 34 #define PAGE_POISON 0x00
 35 #else
 36 #define PAGE_POISON 0xaa
 37 #endif
 38 
 39 /********** mm/page_alloc.c ************/
 40 
 41 #define TAIL_MAPPING    ((void *) 0x400 + POISON_POINTER_DELTA)
 42 
 43 /********** mm/slab.c **********/
 44 /*
 45  * Magic nums for obj red zoning.
 46  * Placed in the first word before and the first word after an obj.
 47  */
 48 #define RED_INACTIVE    0x09F911029D74E35BULL   /* when obj is inactive */
 49 #define RED_ACTIVE      0xD84156C5635688C0ULL   /* when obj is active */
 50 
 51 #define SLUB_RED_INACTIVE       0xbb
 52 #define SLUB_RED_ACTIVE         0xcc
 53 
 54 /* ...and for poisoning */
 55 #define POISON_INUSE    0x5a    /* for use-uninitialised poisoning */
 56 #define POISON_FREE     0x6b    /* for use-after-free poisoning */
 57 #define POISON_END      0xa5    /* end-byte of poisoning */
 58 
 59 /********** arch/$ARCH/mm/init.c **********/
 60 #define POISON_FREE_INITMEM     0xcc
 61 
 62 /********** arch/ia64/hp/common/sba_iommu.c **********/
 63 /*
 64  * arch/ia64/hp/common/sba_iommu.c uses a 16-byte poison string with a
 65  * value of "SBAIOMMU POISON\0" for spill-over poisoning.
 66  */
 67 
 68 /********** fs/jbd/journal.c **********/
 69 #define JBD_POISON_FREE         0x5b
 70 #define JBD2_POISON_FREE        0x5c
 71 
 72 /********** drivers/base/dmapool.c **********/
 73 #define POOL_POISON_FREED       0xa7    /* !inuse */
 74 #define POOL_POISON_ALLOCATED   0xa9    /* !initted */
 75 
 76 /********** drivers/atm/ **********/
 77 #define ATM_POISON_FREE         0x12
 78 #define ATM_POISON              0xdeadbeef
 79 
 80 /********** kernel/mutexes **********/
 81 #define MUTEX_DEBUG_INIT        0x11
 82 #define MUTEX_DEBUG_FREE        0x22
 83 
 84 /********** lib/flex_array.c **********/
 85 #define FLEX_ARRAY_FREE 0x6c    /* for use-after-free poisoning */
 86 
 87 /********** security/ **********/
 88 #define KEY_DESTROY             0xbd
 89 
 90 #endif
 91 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp