https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85379

            Bug ID: 85379
           Summary: Missing ENDBR in __stack_split_initialize
           Product: gcc
           Version: 8.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libgcc
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
            Blocks: 81652
  Target Milestone: ---
            Target: x86_64-*-*, i?86-*-*

Program received signal SIGSEGV, Segmentation fault.
__stack_split_initialize ()
    at /export/gnu/import/git/sources/gcc/libgcc/config/i386/morestack.S:751
751             leaq    -16000(%rsp),%rax       # We should have at least 16K.
Missing separate debuginfos, use: dnf debuginfo-install
libgcc-8.0.1-0.21.0.fc28.x86_64
(gdb) disass
Dump of assembler code for function __stack_split_initialize:
=> 0x0000000000402858 <+0>:     lea    -0x3e80(%rsp),%rax
   0x0000000000402860 <+8>:     mov    %rax,%fs:0x70
   0x0000000000402869 <+17>:    sub    $0x8,%rsp
   0x000000000040286d <+21>:    mov    %rsp,%rdi
   0x0000000000402870 <+24>:    mov    $0x3e80,%esi
   0x0000000000402875 <+29>:    callq  0x401810
<__generic_morestack_set_initial_sp>
   0x000000000040287a <+34>:    add    $0x8,%rsp
   0x000000000040287e <+38>:    retq   
End of assembler dump.
(gdb) 

This

diff --git a/libgcc/config/i386/morestack.S b/libgcc/config/i386/morestack.S
index eca441a2867..99e65eaaff4 100644
--- a/libgcc/config/i386/morestack.S
+++ b/libgcc/config/i386/morestack.S
@@ -730,6 +730,7 @@ __morestack_large_model:
 #endif

 __stack_split_initialize:
+  _CET_ENDBR

 #ifndef __x86_64__

fixes it.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81652
[Bug 81652] [meta-bug] -fcf-protection=full -mcet bugs

Reply via email to