File: /Users/paulross/dev/linux/linux-3.13/include/linux/poison.h

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: