Commit be2d11b2 authored by Miroslav Benes's avatar Miroslav Benes Committed by Vasily Gorbik

s390/unwind: add stack pointer alignment sanity checks

ABI requires SP to be aligned 8 bytes, report unwinding error otherwise.

Link: https://lkml.kernel.org/r/20191106095601.29986-5-mbenes@suse.czReviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Tested-by: default avatarMiroslav Benes <mbenes@suse.cz>
Signed-off-by: default avatarMiroslav Benes <mbenes@suse.cz>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent bf018ee6
......@@ -94,6 +94,10 @@ int get_stack_info(unsigned long sp, struct task_struct *task,
if (!sp)
goto unknown;
/* Sanity check: ABI requires SP to be aligned 8 bytes. */
if (sp & 0x7)
goto unknown;
/* Check per-task stack */
if (in_task_stack(sp, task, info))
goto recursion_check;
......
......@@ -92,6 +92,10 @@ bool unwind_next_frame(struct unwind_state *state)
}
}
/* Sanity check: ABI requires SP to be aligned 8 bytes. */
if (sp & 0x7)
goto out_err;
ip = ftrace_graph_ret_addr(state->task, &state->graph_idx, ip, (void *) sp);
/* Update unwind state */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment