af_unix: Silence randstruct GCC plugin warning
authorKees Cook <keescook@chromium.org>
Tue, 10 May 2022 22:46:26 +0000 (15:46 -0700)
committerKees Cook <keescook@chromium.org>
Mon, 16 May 2022 23:02:21 +0000 (16:02 -0700)
commitb146cbf2e32f01f56244d670aef2f43d44fcf120
treea6bcf259999645c5e3cea50c6a3d1df5506c7bd5
parent2dcfe9e2d370f6643486e327c6ae17af8887756c
af_unix: Silence randstruct GCC plugin warning

While preparing for Clang randstruct support (which duplicated many of
the warnings the randstruct GCC plugin warned about), one strange one
remained only for the randstruct GCC plugin. Eliminating this rids
the plugin of the last exception.

It seems the plugin is happy to dereference individual members of
a cross-struct cast, but it is upset about casting to a whole object
pointer. This only manifests in one place in the kernel, so just replace
the variable with individual member accesses. There is no change in
executable instruction output.

Drop the last exception from the randstruct GCC plugin.

Cc: "David S. Miller" <davem@davemloft.net>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Cong Wang <cong.wang@bytedance.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: netdev@vger.kernel.org
Cc: linux-hardening@vger.kernel.org
Acked-by: Kuniyuki Iwashima <kuniyu@amazon.co.jp>
Link: https://lore.kernel.org/lkml/20220511022217.58586-1-kuniyu@amazon.co.jp
Acked-by: Jakub Kicinski <kuba@kernel.org>
Link: https://lore.kernel.org/lkml/20220511151542.4cb3ff17@kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
net/unix/af_unix.c
scripts/gcc-plugins/randomize_layout_plugin.c