lkml.org 
[lkml]   [2019]   [Oct]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 06/18] add support for Clang's Shadow Call Stack (SCS)
    From
    Date
    On Fri, 2019-10-18 at 09:10 -0700, Sami Tolvanen wrote:
    > This change adds generic support for Clang's Shadow Call Stack, which
    > uses a shadow stack to protect return addresses from being overwritten
    > by an attacker
    []
    > .diff --git a/include/linux/compiler-clang.h b/include/linux/compiler-clang.h
    []
    > @@ -42,3 +42,5 @@
    > * compilers, like ICC.
    > */
    > #define barrier() __asm__ __volatile__("" : : : "memory")
    > +
    > +#define __noscs __attribute__((no_sanitize("shadow-call-stack")))

    trivia:

    This should likely use the __ prefix and suffix form:

    #define __noscs __attribute__((__no_sanitize__("shadow-call-stack")))

    as should the __no_sanitize_address above this

    > diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
    []
    > @@ -202,6 +202,10 @@ struct ftrace_likely_data {
    > # define randomized_struct_fields_end
    > #endif
    >
    > +#ifndef __noscs
    > +# define __noscs
    > +#endif
    > +
    > #ifndef asm_volatile_goto
    > #define asm_volatile_goto(x...) asm goto(x)
    > #endif


    \
     
     \ /
      Last update: 2019-10-18 18:59    [W:2.776 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site