guix-mirrors/gnu/packages/patches/glibc-hurd64-intr-msg-clobber.patch
Ludovic Courtès 2194d6e99f
gnu: glibc: Update to 2.40.
* gnu/packages/base.scm (glibc): Update to 2.40.
[replacement]: Remove.
(%glibc-patches): Update.
(glibc/fixed): Remove.
(glibc-for-fhs): Update patch name.
* gnu/packages/patches/glibc-hurd64-intr-msg-clobber.patch: Update for 2.40.
* gnu/packages/patches/glibc-hurd64-sgms-context.patch: Remove.
* gnu/local.mk (dist_patch_DATA): Unregister.
* gnu/packages/base.scm (glibc/hurd-headers): Remove it.
* gnu/packages/patches/glibc-2.40-dl-cache.patch,
gnu/packages/patches/glibc-2.40-CVE-2025-0.patch: New files.
* gnu/local.mk (dist_patch_DATA): Register them.

Change-Id: I7f041a6ff9ea11e4b05a75ca704007deb405653b
2025-07-18 20:17:27 +02:00

25 lines
1.1 KiB
Diff

Taken from: <https://salsa.debian.org/glibc-team/glibc/-/blob/027f94215a633cbf53794d4b48675fde36706e35/debian/patches/hurd-i386/local-intr-msg-clobber.diff>
Force putting save_data on the stack rather than in SSE register
The signal management does not yet properly save SSE state, so that save_data
would get overwritten by signal handlers, notably leading to `` shell
replacement getting empty content because then the io_read RPC retry gets an
MIG_BAD_ARGUMENTS error.
XXX: This is only temporary to fix the common shll replacement issue, and is
waiting for proper SSE state restoration.
Index: glibc-2.38/hurd/intr-msg.c
===================================================================
--- glibc-2.38.orig/hurd/intr-msg.c
+++ glibc-2.38/hurd/intr-msg.c
@@ -66,7 +66,7 @@ _hurd_intr_rpc_mach_msg (mach_msg_header
mach_msg_bits_t msgh_bits;
mach_port_t remote_port;
mach_msg_id_t msgid;
- struct clobber save_data;
+ volatile struct clobber save_data;
if ((option & (MACH_SEND_MSG|MACH_RCV_MSG)) != (MACH_SEND_MSG|MACH_RCV_MSG)
|| _hurd_msgport_thread == MACH_PORT_NULL)