From f402c54483bd7686d95df25d072edaf0964cdabe Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Tue, 9 Sep 2025 18:41:53 +0200 Subject: [PATCH] x86_64: Use __seg_fs qualifiers in {STACK, POINTER}_CHK_GUARD macros 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 Cc: H.J.Lu Cc: Florian Weimer Cc: Carlos O'Donell Reviewed-by: H.J. Lu --- sysdeps/x86_64/stackguard-macros.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sysdeps/x86_64/stackguard-macros.h b/sysdeps/x86_64/stackguard-macros.h index 1948800cd00..1d4c620ff1b 100644 --- a/sysdeps/x86_64/stackguard-macros.h +++ b/sysdeps/x86_64/stackguard-macros.h @@ -1,11 +1,7 @@ #include #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)) -- 2.47.3