• Jinoh Kang's avatar
    loader: Don't return from __stack_chk_fail() stub in preloader. · da74da29
    Jinoh Kang authored
    GCC expects __stack_chk_fail() to be noreturn[1].  Returning from
    __stack_chk_fail() can thus lead to subtle failures.
    
    When crashing, use a volatile NULL pointer dereference.  Ideally we
    would like to "abort()" here, but doing so would require two more
    syscall definitions just for a cold function.  After all, the function
    isn't even used at all if -fno-stack-protector is specified.
    
    Also, don't say "stack smashing" (unlike glibc).  The preloader
    currently initializes the stack canary value to a fixed value (0), which
    serves little value in protecting against actual buffer overrun attacks.
    
    [1]: https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gccint/Stack-Smashing-Protection.html
    da74da29
preloader.c 48.8 KB