diff options
author | Alex Rønne Petersen <alex@alexrp.com> | 2024-12-12 17:56:04 +0100 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2025-02-21 20:53:41 -0500 |
commit | b6b81f697b38ef915a5dbf1311baba164822e917 (patch) | |
tree | e43a8a1710aaca8f276034bfa4fc048e94113aca /src/thread/aarch64 | |
parent | 5e03c03fcde3534b37a0b995a438cd176d6882d3 (diff) | |
download | musl-b6b81f697b38ef915a5dbf1311baba164822e917.tar.gz |
clone: clear the frame pointer in the child process on relevant ports
This just mirrors what is done in the start code for the affected
ports, as well as what is already done for the three x86 ports.
Clearing the frame pointer helps protect FP-based unwinders from
wrongly attempting to traverse into the parent thread's call frame
stack.
Diffstat (limited to 'src/thread/aarch64')
-rw-r--r-- | src/thread/aarch64/clone.s | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/thread/aarch64/clone.s b/src/thread/aarch64/clone.s index e3c83395..9ac272bd 100644 --- a/src/thread/aarch64/clone.s +++ b/src/thread/aarch64/clone.s @@ -24,7 +24,8 @@ __clone: // parent ret // child -1: ldp x1,x0,[sp],#16 +1: mov fp, 0 + ldp x1,x0,[sp],#16 blr x1 mov x8,#93 // SYS_exit svc #0 |