You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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: Ifd99e41497d20ce14950826ee20a36170d818e39
0 commit comments