]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Compile debug/stack_chk_fail_local.c with stack protector
authorFlorian Weimer <fweimer@redhat.com>
Thu, 5 Jul 2018 17:28:11 +0000 (19:28 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Thu, 5 Jul 2018 17:28:35 +0000 (19:28 +0200)
The resulting object file is statically linked into applications, so
it is desirable to have (formal) stack protector coverage there.

ChangeLog
debug/Makefile

index d134e1f29d8058254d7187aeac877ea388c37510..3bfd61a44a0e459c12bd2f96275e4180812eb590 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2018-07-05  Florian Weimer  <fweimer@redhat.com>
+           Carlos O'Donell  <carlos@redhat.com>
+
+       * debug/Makefile (CFLAGS-stack_chk_fail_local.c): Remove
+       $(no-stack-protector).  stack_chk_fail_local.c can be compiled
+       with stack protector enabled because there is no risk of infinite
+       recursion.
+
 2018-07-05  Maciej W. Rozycki  <macro@mips.com>
 
        [BZ #19818]
index c6f6feb0ecf538a211d7d5c0f091543390c484ba..506cebc3c4ca19ffdf42635a5dfa7785aebe0a4d 100644 (file)
@@ -58,10 +58,13 @@ static-only-routines := warning-nop stack_chk_fail_local
 elide-routines.o := stack_chk_fail_local
 
 # Building the stack-protector failure routines with stack protection
-# makes no sense.
+# is not required since we have already failed a stack check and are
+# exiting the process.  However, the local aliases which jump to the
+# real routines should still be compiled with stack protection
+# (stack_chk_fail_local.c), so that the statically linked parts of the
+# library have the expected flags.
 
 CFLAGS-stack_chk_fail.c += $(no-stack-protector)
-CFLAGS-stack_chk_fail_local.c += $(no-stack-protector)
 
 CFLAGS-backtrace.c += -fno-omit-frame-pointer -funwind-tables
 CFLAGS-sprintf_chk.c += $(libio-mtsafe)