]> git.ipfire.org Git - thirdparty/glibc.git/commit
hurd: handling pending signals could result in corruption of FPU state
authorMike Kelly <mike@weatherwax.co.uk>
Mon, 2 Feb 2026 07:25:02 +0000 (07:25 +0000)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 4 Feb 2026 07:15:46 +0000 (08:15 +0100)
commit826484111a81295056a98507a493876cd31cb21d
treee9a63203a9594906b64683fb303e7ef3e1c191f4
parent67322498c4b2c2fca2be5e8c4561780631b35992
hurd: handling pending signals could result in corruption of FPU state

Handling a pending signal calls _hurd_setup_sighandler() once again
after the initial signal handling. In this case a pointer to the
previous sigcontext is available to supply the interrupted thread's
original basic state, fpu state and fpu XSTATE. The original XSTATE
was not being preserved by the pending signal but instead overwritten
with the active XSTATE. XSTATE register values modified by the
signal handling code could therefore be wrongly propogated back to
the interrupted user code.
sysdeps/mach/hurd/i386/bits/sigcontext.h
sysdeps/mach/hurd/x86/trampoline.c
sysdeps/mach/hurd/x86_64/bits/sigcontext.h