mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
* 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
25 lines
1.1 KiB
Diff
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)
|