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 /kernel | |
| 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 'kernel')
| -rw-r--r-- | kernel/futex.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/futex.c b/kernel/futex.c index c934689043b2..16dbe4c93895 100644 --- a/kernel/futex.c +++ b/kernel/futex.c | |||
| @@ -212,7 +212,7 @@ struct futex_pi_state { | |||
| 212 | atomic_t refcount; | 212 | atomic_t refcount; |
| 213 | 213 | ||
| 214 | union futex_key key; | 214 | union futex_key key; |
| 215 | }; | 215 | } __randomize_layout; |
| 216 | 216 | ||
| 217 | /** | 217 | /** |
| 218 | * struct futex_q - The hashed futex queue entry, one per waiting task | 218 | * struct futex_q - The hashed futex queue entry, one per waiting task |
| @@ -246,7 +246,7 @@ struct futex_q { | |||
| 246 | struct rt_mutex_waiter *rt_waiter; | 246 | struct rt_mutex_waiter *rt_waiter; |
| 247 | union futex_key *requeue_pi_key; | 247 | union futex_key *requeue_pi_key; |
| 248 | u32 bitset; | 248 | u32 bitset; |
| 249 | }; | 249 | } __randomize_layout; |
| 250 | 250 | ||
| 251 | static const struct futex_q futex_q_init = { | 251 | static const struct futex_q futex_q_init = { |
| 252 | /* list gets initialized in queue_me()*/ | 252 | /* list gets initialized in queue_me()*/ |
