| #
7749dda2 |
| 08-Jun-2025 |
Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> |
core, libutils: unpoison stack on longjmp for ASan
Adds support for unpoisoning the stack when performing longjmp, to ensure correct ASan behavior.
When a longjmp unwinds the stack, parts of the st
core, libutils: unpoison stack on longjmp for ASan
Adds support for unpoisoning the stack when performing longjmp, to ensure correct ASan behavior.
When a longjmp unwinds the stack, parts of the stack that were poisoned during deeper calls may remain marked as inaccessible. This can lead to false ASan reports after longjmp, as the new frame reuses that memory.
To avoid this, a call to asan_handle_longjmp() is added to setjmp_a64.S, which unpoisons the stack range between the current SP and the old SP (saved during setjmp).
Signed-off-by: Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
30e743f6 |
| 13-Dec-2021 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
lib: libutils: Use ret for longjmp with Clang and BTI
longjmp uses br instead of ret to jump to the target. Thus the target location should have the right BTI launchpad to handle this. clang has a b
lib: libutils: Use ret for longjmp with Clang and BTI
longjmp uses br instead of ret to jump to the target. Thus the target location should have the right BTI launchpad to handle this. clang has a bug [1] and doesn't add the BTI after setjmp causing exception when BTI is enabled. This works well with gcc [2] and can be tested when compiling xtests with WITH_CXX_TESTS=n. To avoid the exception, use ret instead of br with clang and BTI.
[1] - https://bugs.llvm.org/show_bug.cgi?id=49544 [2] - https://gcc.gnu.org/legacy-ml/gcc-patches/2018-11/msg02472.html
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
181f8492 |
| 06-Dec-2021 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
Generate ELF Note for BTI in all arm64 asm files
Add program property note section in the assembly files to ensure that when linking them, program property note section is generated in the final ELF
Generate ELF Note for BTI in all arm64 asm files
Add program property note section in the assembly files to ensure that when linking them, program property note section is generated in the final ELF.
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
7ad2713d |
| 19-Nov-2021 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
Add BTI launch pads in aarch64 assembly files
Compiler adds BTI launchpads only in C source files. For assembly files, BTI launchpad is also required at locations where "br" is used and at the start
Add BTI launch pads in aarch64 assembly files
Compiler adds BTI launchpads only in C source files. For assembly files, BTI launchpad is also required at locations where "br" is used and at the start of the functions. This needs to be added manually.
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
099918f6 |
| 05-Sep-2019 |
Sumit Garg <sumit.garg@linaro.org> |
ftrace: Add support for syscall function tracer
This patch adds support for syscall tracing in TEE core. It complements existing ftrace support for user TAs via adding trace for syscalls that are in
ftrace: Add support for syscall function tracer
This patch adds support for syscall tracing in TEE core. It complements existing ftrace support for user TAs via adding trace for syscalls that are invoked by user TAs into the TEE core.
And after this patch ftrace will cover both TA and TEE core code. So lets rename config option from CFG_TA_FTRACE_SUPPORT to CFG_FTRACE_SUPPORT.
It is optional to enable syscall trace via CFG_SYSCALL_FTRACE=y config option in addition to CFG_FTRACE_SUPPORT=y config option.
Signed-off-by: Sumit Garg <sumit.garg@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
9d6ac097 |
| 10-Jun-2019 |
Sumit Garg <sumit.garg@linaro.org> |
ftrace: arm64: handle special setjmp()/longjmp() apis
setjmp()/longjmp() user-space apis are used to perform a nonlocal goto which transfer execution from one function to a predetermined location in
ftrace: arm64: handle special setjmp()/longjmp() apis
setjmp()/longjmp() user-space apis are used to perform a nonlocal goto which transfer execution from one function to a predetermined location in another function. This is a special case as compared to normal "C" function calls. So this patch enables ftrace to generate function graph for these apis.
Signed-off-by: Sumit Garg <sumit.garg@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey960)
show more ...
|
| #
1bb92983 |
| 15-Dec-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
Add SPDX license identifiers
Adds one SPDX-License-Identifier line [1] to each source files that contains license text.
Generated by [2]: spdxify.py --add-spdx optee_os/
The scancode tool [3] wa
Add SPDX license identifiers
Adds one SPDX-License-Identifier line [1] to each source files that contains license text.
Generated by [2]: spdxify.py --add-spdx optee_os/
The scancode tool [3] was used to double check the license matching code in the Python script. All the licenses detected by scancode are either detected by spdxify.py, or have no SPDX identifier, or are false matches.
Link: [1] https://spdx.org/licenses/ Link: [2] https://github.com/jforissier/misc/blob/f7b56c8/spdxify.py Link: [3] https://github.com/nexB/scancode-toolkit Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| #
0c81fcd6 |
| 27-Mar-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutil: add setjmp/longjmp
Imports setjmp/longjmp from newlib.
Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens W
libutil: add setjmp/longjmp
Imports setjmp/longjmp from newlib.
Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|