]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
x86_64: Use __seg_fs qualifiers in {STACK, POINTER}_CHK_GUARD macros
authorUros Bizjak <ubizjak@gmail.com>
Tue, 9 Sep 2025 16:41:53 +0000 (18:41 +0200)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 10 Sep 2025 12:32:17 +0000 (05:32 -0700)
Use the __seg_fs named address space qualifiers to cast reads of
the guard values in the TCB as %fs: prefixed addresses.

Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Cc: H.J.Lu <hjl.tools@gmail.com>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
sysdeps/x86_64/stackguard-macros.h

index 1948800cd0086e292d57aff064a0a4da7c0c945d..1d4c620ff1b86f365e3be60619bd502dee3f95cc 100644 (file)
@@ -1,11 +1,7 @@
 #include <stdint.h>
 
 #define STACK_CHK_GUARD \
-  ({ uintptr_t x;                                              \
-     asm ("mov %%fs:%c1, %0" : "=r" (x)                                \
-         : "i" (offsetof (tcbhead_t, stack_guard))); x; })
+  (*(uintptr_t __seg_fs *) offsetof (tcbhead_t, stack_guard))
 
 #define POINTER_CHK_GUARD \
-  ({ uintptr_t x;                                              \
-     asm ("mov %%fs:%c1, %0" : "=r" (x)                                \
-         : "i" (offsetof (tcbhead_t, pointer_guard))); x; })
+  (*(uintptr_t __seg_fs *) offsetof (tcbhead_t, pointer_guard))