From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1944) id 6D5AB385735C; Fri, 28 Oct 2022 10:18:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6D5AB385735C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1666952302; bh=vmiXh9T+6ctqTpeOGfvioviSPLX6Vr5RAH0WPlrqieM=; h=From:To:Subject:Date:From; b=pPxdSbKTdrFX1D1KnFLtqfsqvcyzFYVmagIgUUKI5DEcGEWVOdOA11yldQKAwuCUo mi0Mrob/iyD75C+tgDlv3zGtYwk/CYGR52x1EFYWVn4CUChuKBnuBVffI8c0kpsgbB cHGLAmHLEwG1FTD2D7EFKNznN+KS2gOybbjnggS0= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Szabolcs Nagy To: glibc-cvs@sourceware.org Subject: [glibc] aarch64: Fix the extension header write in getcontext and swapcontext X-Act-Checkin: glibc X-Git-Author: Szabolcs Nagy X-Git-Refname: refs/heads/master X-Git-Oldrev: dd31f42e39206bc69f4a60e47ee117f6c968138c X-Git-Newrev: 09c6c6073c925235b385af1d8edf6bc853eeaf60 Message-Id: <20221028101822.6D5AB385735C@sourceware.org> Date: Fri, 28 Oct 2022 10:18:22 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=09c6c6073c925235b385af1d8edf6bc853eeaf60 commit 09c6c6073c925235b385af1d8edf6bc853eeaf60 Author: Szabolcs Nagy Date: Fri Jul 29 08:00:06 2022 +0100 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: --- sysdeps/unix/sysv/linux/aarch64/getcontext.S | 4 ++-- sysdeps/unix/sysv/linux/aarch64/swapcontext.S | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/sysdeps/unix/sysv/linux/aarch64/getcontext.S index 15fbd2d1a0..3109cbd99a 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 1ee2e40272..e3ec9da35d 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