Commit 5ce9e36
committed
Clarify the values for list poison
In the Linux kernel, LIST_POISON1 (0x00100100) and LIST_POISON2
(0x00200200) mark freed list nodes so that any later access triggers a
fault, catching use-after-free errors. These values are chosen because
they lie in the kernel’s virtual address space, are unlikely to be valid
pointers, and are easily recognizable in crash dumps.
In kernel space this works reliably because the kernel controls the
address space and reserves low addresses. In userspace, however, memory
is managed differently—with ASLR and possible mappings, these poison
addresses might not be unmapped, so dereferencing them may not always
fault. For userspace, using NULL (0x0) or custom invalid pointers—and
combining poisoning with runtime checks—is a better strategy.
Change-Id: Ifd99e41497d20ce14950826ee20a36170d818e391 parent df5427f commit 5ce9e36
2 files changed
+3
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
153 | | - | |
154 | | - | |
| 153 | + | |
| 154 | + | |
155 | 155 | | |
156 | 156 | | |
157 | 157 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
0 commit comments