| Subject | Re: [PATCH 06/18] add support for Clang's Shadow Call Stack (SCS) | From | Joe Perches <> | Date | Fri, 18 Oct 2019 09:58:14 -0700 |
| |
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
|