Supporting VMAP_STACK with KASAN_VMALLOC is straightforward: - clear the shadow region of vmapped stacks when swapping them in - tweak Kconfig to allow VMAP_STACK to be turned on with KASAN
Showing the changes to kernel (1 of 2 files). Show all
Unified · Split
| @@ -93,6 +93,7 @@ · 92 unmodified lines | ||
| 93 | 93 | #include <linux/livepatch.h> |
| 94 | 94 | #include <linux/thread_info.h> |
| 95 | 95 | #include <linux/stackleak.h> |
| 96 | +#include <linux/kasan.h> | |
| 96 | 97 | |
| 97 | 98 | #include <asm/pgtable.h> |
| 98 | 99 | #include <asm/pgalloc.h> |
| @@ -223,6 +224,9 @@ static unsigned long *alloc_thread_stack_node(struct task_struct *tsk, int node) · 124 unmodified lines | ||
| 223 | 224 | if (!s) |
| 224 | 225 | continue; |
| 225 | 226 | |
| 227 | + /* Clear the KASAN shadow of the stack. */ | |
| 228 | + kasan_unpoison_shadow(s->addr, THREAD_SIZE); | |
| 229 | + | |
| 226 | 230 | /* Clear stale pointers from reused stack. */ |
| 227 | 231 | memset(s->addr, 0, THREAD_SIZE); |
| 228 | 232 | |