commit | 35619cf07e66f2d667c114d57ea19afdc1ad839a | [log] [tgz] |
---|---|---|
author | Jerome Forissier <jerome@forissier.org> | Mon Jun 22 11:28:32 2020 +0200 |
committer | Jérôme Forissier <jerome@forissier.org> | Mon Jun 22 17:04:34 2020 +0200 |
tree | a34263f9992ffdbb413233beed421c9c881e69e5 | |
parent | 35e770df71a8c35d6c3006e25939d936dca02bbc [diff] |
ldelf: arm64: do not unwind past end of stack unwind_arm64() currently does not check the value of the frame pointer after it has done its job unwinding one frame. A NULL value indicates the end of the call stack, and therefore the function should return false to stop the caller from unwinding further (a do .. while loop is used in print_stack_arm64()). Instead invalid values for FP and PC are returned which causes an erroneous display and the unwind stops one step too late, when the FP is found to be outside the stack. Fixes the invalid last line in call stacks such as xtest 1019: E/TC:? 0 TA panicked with code 0x0 E/LD: Status of TA 5b9e0e40-2636-11e1-ad9e-0002a5d5c51b E/LD: arch: aarch64 [...] E/LD: Call stack: E/LD: 0x0000000080062a50 E/LD: 0x00000000801df848 E/LD: 0x00000000800631a8 E/LD: 0xfffffffffffffffc Signed-off-by: Jerome Forissier <jerome@forissier.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
This git contains source code for the secure side implementation of OP-TEE project.
All official OP-TEE documentation has moved to http://optee.readthedocs.io.
// OP-TEE core maintainers