diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-19 11:55:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-19 11:55:18 -0400 |
commit | e06fdaf40a5c021dd4a2ec797e8b724f07360070 (patch) | |
tree | d0e7ec007cd0c4125b3879f389790ed900f00ad4 /include/linux/compiler.h | |
parent | a90c6ac2b5651b1f907de512c2fa648c9fa6bb6e (diff) | |
parent | 8acdf5055974e49d337d51ac7011449cfd7b7d05 (diff) |
Merge tag 'gcc-plugins-v4.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull structure randomization updates from Kees Cook:
"Now that IPC and other changes have landed, enable manual markings for
randstruct plugin, including the task_struct.
This is the rest of what was staged in -next for the gcc-plugins, and
comes in three patches, largest first:
- mark "easy" structs with __randomize_layout
- mark task_struct with an optional anonymous struct to isolate the
__randomize_layout section
- mark structs to opt _out_ of automated marking (which will come
later)
And, FWIW, this continues to pass allmodconfig (normal and patched to
enable gcc-plugins) builds of x86_64, i386, arm64, arm, powerpc, and
s390 for me"
* tag 'gcc-plugins-v4.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
randstruct: opt-out externally exposed function pointer structs
task_struct: Allow randomized layout
randstruct: Mark various structs for randomization
Diffstat (limited to 'include/linux/compiler.h')
-rw-r--r-- | include/linux/compiler.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 219f82f3ec1a..eca8ad75e28b 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h | |||
@@ -452,6 +452,11 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s | |||
452 | # define __no_randomize_layout | 452 | # define __no_randomize_layout |
453 | #endif | 453 | #endif |
454 | 454 | ||
455 | #ifndef randomized_struct_fields_start | ||
456 | # define randomized_struct_fields_start | ||
457 | # define randomized_struct_fields_end | ||
458 | #endif | ||
459 | |||
455 | /* | 460 | /* |
456 | * Tell gcc if a function is cold. The compiler will assume any path | 461 | * Tell gcc if a function is cold. The compiler will assume any path |
457 | * directly leading to the call is unlikely. | 462 | * directly leading to the call is unlikely. |