summaryrefslogtreecommitdiffstats
path: root/scripts/gcc-plugins
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2022-05-08 09:15:53 -0700
committerKees Cook <keescook@chromium.org>2022-05-16 16:02:21 -0700
commitc1298a3a1139c9a73a188fbb153b6eb83dbd4d7d (patch)
treef52517bf328f19902d5550083a67379b7691ae98 /scripts/gcc-plugins
parent61f60bac8c05f8ecd2ae2a6360520b91a45be9a2 (diff)
downloadlinux-c1298a3a1139c9a73a188fbb153b6eb83dbd4d7d.tar.gz
linux-c1298a3a1139c9a73a188fbb153b6eb83dbd4d7d.tar.bz2
linux-c1298a3a1139c9a73a188fbb153b6eb83dbd4d7d.zip
big_keys: Use struct for internal payload
The randstruct GCC plugin gets upset when it sees struct path (which is randomized) being assigned from a "void *" (which it cannot type-check). There's no need for these casts, as the entire internal payload use is following a normal struct layout. Convert the enum-based void * offset dereferencing to the new big_key_payload struct. No meaningful machine code changes result after this change, and source readability is improved. Drop the randstruct exception now that there is no "confusing" cross-type assignment. Cc: David Howells <dhowells@redhat.com> Cc: Eric Biggers <ebiggers@kernel.org> Cc: Christoph Hellwig <hch@infradead.org> Cc: Jarkko Sakkinen <jarkko@kernel.org> Cc: James Morris <jmorris@namei.org> Cc: "Serge E. Hallyn" <serge@hallyn.com> Cc: linux-hardening@vger.kernel.org Cc: keyrings@vger.kernel.org Cc: linux-security-module@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'scripts/gcc-plugins')
-rw-r--r--scripts/gcc-plugins/randomize_layout_plugin.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/scripts/gcc-plugins/randomize_layout_plugin.c b/scripts/gcc-plugins/randomize_layout_plugin.c
index 19214e573137..5836a7fc7532 100644
--- a/scripts/gcc-plugins/randomize_layout_plugin.c
+++ b/scripts/gcc-plugins/randomize_layout_plugin.c
@@ -50,8 +50,6 @@ static const struct whitelist_entry whitelist[] = {
{ "drivers/net/ethernet/sun/niu.c", "page", "address_space" },
/* unix_skb_parms via UNIXCB() buffer */
{ "net/unix/af_unix.c", "unix_skb_parms", "char" },
- /* big_key payload.data struct splashing */
- { "security/keys/big_key.c", "path", "void *" },
{ }
};