diff options
Diffstat (limited to 'include/linux/poison.h')
| -rw-r--r-- | include/linux/poison.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/include/linux/poison.h b/include/linux/poison.h index 7fc194aef8c2..2110a81c5e2a 100644 --- a/include/linux/poison.h +++ b/include/linux/poison.h | |||
| @@ -2,13 +2,25 @@ | |||
| 2 | #define _LINUX_POISON_H | 2 | #define _LINUX_POISON_H |
| 3 | 3 | ||
| 4 | /********** include/linux/list.h **********/ | 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 | |||
| 5 | /* | 17 | /* |
| 6 | * These are non-NULL pointers that will result in page faults | 18 | * These are non-NULL pointers that will result in page faults |
| 7 | * under normal circumstances, used to verify that nobody uses | 19 | * under normal circumstances, used to verify that nobody uses |
| 8 | * non-initialized list entries. | 20 | * non-initialized list entries. |
| 9 | */ | 21 | */ |
| 10 | #define LIST_POISON1 ((void *) 0x00100100) | 22 | #define LIST_POISON1 ((void *) 0x00100100 + POISON_POINTER_DELTA) |
| 11 | #define LIST_POISON2 ((void *) 0x00200200) | 23 | #define LIST_POISON2 ((void *) 0x00200200 + POISON_POINTER_DELTA) |
| 12 | 24 | ||
| 13 | /********** include/linux/timer.h **********/ | 25 | /********** include/linux/timer.h **********/ |
| 14 | /* | 26 | /* |
