UPSTREAM: arm64: when walking onto the task stack, check sp & fp are in current-...
authorJames Morse <james.morse@arm.com>
Thu, 10 Dec 2015 10:22:40 +0000 (10:22 +0000)
committerJeffrey Vander Stoep <jeffv@google.com>
Fri, 16 Sep 2016 21:33:15 +0000 (21:33 +0000)
commit4ba051d5a5476288cb27912c90de10aaf7c7f151
treea6e5a3f64c0193350ea1b1c63017f360a4060d57
parent722e6114950d4dfdf890c045461932c91a4209d7
UPSTREAM: arm64: when walking onto the task stack, check sp & fp are in current->stack

When unwind_frame() reaches the bottom of the irq_stack, the last fp
points to the original task stack. unwind_frame() uses
IRQ_STACK_TO_TASK_STACK() to find the sp value. If either values is
wrong, we may end up walking a corrupt stack.

Check these values are sane by testing if they are both on the stack
pointed to by current->stack.

Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Bug: 30369029
Patchset: per-cpu-irq-stack

(cherry picked from commit 1ffe199b1c9b72a8e752a9ae2a7af10128ab2ca1)
Signed-off-by: Jeff Vander Stoep <jeffv@google.com>
Change-Id: I2e5bf1ce899a1018f1c5b8ccb4f7c816d61bba21
arch/arm64/kernel/stacktrace.c