diff options
author | Florian Mayer <fmayer@google.com> | 2024-03-06 16:53:30 -0800 |
---|---|---|
committer | Florian Mayer <fmayer@google.com> | 2024-03-07 17:12:57 -0800 |
commit | 1fef1b1359f36d4e7a7e6b0f97f37e6f88409b3e (patch) | |
tree | 19886183dfd6dedc8b6a3e951a7cc3975a95b5a2 /debuggerd | |
parent | e6462f91c2de269e06346cf7a736c9ec3061e00b (diff) | |
download | core-1fef1b1359f36d4e7a7e6b0f97f37e6f88409b3e.tar.gz |
Update test for more accurate memtag_handle_longjmp
Change-Id: Ie5482d343c37ee8cf57a8ce105a0c8a363e5761e
Diffstat (limited to 'debuggerd')
-rw-r--r-- | debuggerd/debuggerd_test.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/debuggerd/debuggerd_test.cpp b/debuggerd/debuggerd_test.cpp index 3135d9e50..526e2ca34 100644 --- a/debuggerd/debuggerd_test.cpp +++ b/debuggerd/debuggerd_test.cpp @@ -603,11 +603,10 @@ TEST_P(SizeParamCrasherTest, mte_underflow) { } __attribute__((noinline)) void mte_illegal_setjmp_helper(jmp_buf& jump_buf) { - // Because the detection of illegal setjmp is done relative to the SP in setjmp, - // we need to make sure this stack frame is bigger than the one of setjmp. - // TODO(fmayer): fix that bug and remove the workaround. - volatile char buf[1024]; - buf[0] = '1'; + // This frame is at least 8 bytes for storing and restoring the LR before the + // setjmp below. So this can never get an empty stack frame, even if we omit + // the frame pointer. So, the SP of this is always less (numerically) than the + // calling function frame. setjmp(jump_buf); } |