]> git.ipfire.org Git - people/stevee/ipfire-2.x.git/blobdiff - src/patches/glibc-2.38/0036-x86-64-Fix-the-dtv-field-load-for-x32-BZ-31184.patch
Merge branch 'master' of ssh://people.ipfire.org/pub/git/ipfire-2.x
[people/stevee/ipfire-2.x.git] / src / patches / glibc-2.38 / 0036-x86-64-Fix-the-dtv-field-load-for-x32-BZ-31184.patch
diff --git a/src/patches/glibc-2.38/0036-x86-64-Fix-the-dtv-field-load-for-x32-BZ-31184.patch b/src/patches/glibc-2.38/0036-x86-64-Fix-the-dtv-field-load-for-x32-BZ-31184.patch
deleted file mode 100644 (file)
index af173fb..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-From 35ea7549751d4f13a28c732e6ad68204f5e60a06 Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Wed, 20 Dec 2023 16:31:43 -0800
-Subject: [PATCH 36/44] x86-64: Fix the dtv field load for x32 [BZ #31184]
-
-On x32, I got
-
-FAIL: elf/tst-tlsgap
-
-$ gdb elf/tst-tlsgap
-...
-open tst-tlsgap-mod1.so
-
-Thread 2 "tst-tlsgap" received signal SIGSEGV, Segmentation fault.
-[Switching to LWP 2268754]
-_dl_tlsdesc_dynamic () at ../sysdeps/x86_64/dl-tlsdesc.S:108
-108            movq    (%rsi), %rax
-(gdb) p/x $rsi
-$4 = 0xf7dbf9005655fb18
-(gdb)
-
-This is caused by
-
-_dl_tlsdesc_dynamic:
-        _CET_ENDBR
-        /* Preserve call-clobbered registers that we modify.
-           We need two scratch regs anyway.  */
-        movq    %rsi, -16(%rsp)
-        movq    %fs:DTV_OFFSET, %rsi
-
-Since the dtv field in TCB is a pointer, %fs:DTV_OFFSET is a 32-bit
-location, not 64-bit.  Load the dtv field to RSI_LP instead of rsi.
-This fixes BZ #31184.
-
-(cherry picked from commit 3502440397bbb840e2f7223734aa5cc2cc0e29b6)
----
- NEWS                        | 1 +
- sysdeps/x86_64/dl-tlsdesc.S | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/NEWS b/NEWS
-index 5ac488bf9b..71057e4793 100644
---- a/NEWS
-+++ b/NEWS
-@@ -37,6 +37,7 @@ The following bugs are resolved with this release:
-   [30804] F_GETLK, F_SETLK, and F_SETLKW value change for powerpc64 with
-     -D_FILE_OFFSET_BITS=64
-   [30842] Stack read overflow in getaddrinfo in no-aaaa mode (CVE-2023-4527)
-+  [31184] FAIL: elf/tst-tlsgap
\f
- Version 2.38
-diff --git a/sysdeps/x86_64/dl-tlsdesc.S b/sysdeps/x86_64/dl-tlsdesc.S
-index 5593897e29..c4823547d7 100644
---- a/sysdeps/x86_64/dl-tlsdesc.S
-+++ b/sysdeps/x86_64/dl-tlsdesc.S
-@@ -102,7 +102,7 @@ _dl_tlsdesc_dynamic:
-       /* Preserve call-clobbered registers that we modify.
-          We need two scratch regs anyway.  */
-       movq    %rsi, -16(%rsp)
--      movq    %fs:DTV_OFFSET, %rsi
-+      mov     %fs:DTV_OFFSET, %RSI_LP
-       movq    %rdi, -8(%rsp)
-       movq    TLSDESC_ARG(%rax), %rdi
-       movq    (%rsi), %rax
--- 
-2.39.2
-