From: Szabolcs Nagy Date: Fri, 29 Jul 2022 07:00:06 +0000 (+0100) Subject: aarch64: Fix the extension header write in getcontext and swapcontext X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d549598009b8f9b795b8d6359f0b2b27418221e3;p=thirdparty%2Fglibc.git aarch64: Fix the extension header write in getcontext and swapcontext The extension header is two 32bit words and in the last header both should be 0. There is plenty space in the __reserved area, but it's better not to write more than we mean to. --- diff --git a/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/sysdeps/unix/sysv/linux/aarch64/getcontext.S index 15fbd2d1a0d..3109cbd99a3 100644 --- a/sysdeps/unix/sysv/linux/aarch64/getcontext.S +++ b/sysdeps/unix/sysv/linux/aarch64/getcontext.S @@ -86,8 +86,8 @@ ENTRY(__getcontext) /* Write the termination context extension header. */ add x2, x2, #FPSIMD_CONTEXT_SIZE - str xzr, [x2, #oHEAD + oMAGIC] - str xzr, [x2, #oHEAD + oSIZE] + str wzr, [x2, #oHEAD + oMAGIC] + str wzr, [x2, #oHEAD + oSIZE] /* Grab the signal mask */ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */ diff --git a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S index 1ee2e40272d..e3ec9da35d7 100644 --- a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S +++ b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S @@ -75,8 +75,8 @@ ENTRY(__swapcontext) /* Write the termination context extension header. */ add x2, x2, #FPSIMD_CONTEXT_SIZE - str xzr, [x2, #oHEAD + oMAGIC] - str xzr, [x2, #oHEAD + oSIZE] + str wzr, [x2, #oHEAD + oMAGIC] + str wzr, [x2, #oHEAD + oSIZE] /* Preserve ucp. */ mov x21, x1