netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4][next] net: Avoid thousands of -Wflex-array-member-not-at-end warnings
@ 2024-10-24 21:07 Gustavo A. R. Silva
  2024-10-24 21:11 ` [PATCH v2 1/4][next] uapi: socket: Introduce struct sockaddr_legacy Gustavo A. R. Silva
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Gustavo A. R. Silva @ 2024-10-24 21:07 UTC (permalink / raw)
  To: Andrew Lunn, Johannes Berg, David Ahern, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Simon Horman
  Cc: netdev, linux-kernel, Gustavo A. R. Silva, linux-hardening,
	Kees Cook

This series aims to resolve thousands of -Wflex-array-member-not-at-end
warnings by introducing `struct sockaddr_legacy`. The intention is to use
it to replace the type of several struct members in the middle of composite
structures, currently of type `struct sockaddr`.

These middle struct members are currently causing thousands of warnings
because `struct sockaddr` contains a flexible-array member, introduced
by commit b5f0de6df6dce ("net: dev: Convert sa_data to flexible array in
struct sockaddR").

The new `struct sockaddr_legacy` doesn't include a flexible-array
member, making it suitable for use as the type of middle members
in composite structs that don't really require the flexible-array
member in `struct sockaddr`, thus avoiding -Wflex-array-member-not-at-end
warnings.

As this new struct will live in UAPI, to avoid breaking user-space code
that expects `struct sockaddr`, the `__kernel_sockaddr_legacy` macro is
introduced. This macro allows us to use either `struct sockaddr` or
`struct sockaddr_legacy` depending on the context in which the code is
used: kernel-space or user-space.

Changes in v2
 - Drop nfsd patch.
 - Move `struct sockaddr_legacy` to include/uapi/linux/socket.h
 - Introduce `__kernel_sockaddr_legacy` macro (Kees)

v1:
 Link: https://lore.kernel.org/linux-hardening/cover.1729037131.git.gustavoars@kernel.org/

Gustavo A. R. Silva (4):
  uapi: socket: Introduce struct sockaddr_legacy
  uapi: wireless: Avoid -Wflex-array-member-not-at-end warnings
  uapi: net: arp: Avoid -Wflex-array-member-not-at-end warnings
  uapi: net: Avoid -Wflex-array-member-not-at-end warnings

 include/net/compat.h          | 30 +++++++++----------
 include/uapi/linux/if_arp.h   | 18 +++++------
 include/uapi/linux/route.h    | 28 +++++++++---------
 include/uapi/linux/socket.h   | 28 ++++++++++++++++++
 include/uapi/linux/wireless.h | 56 +++++++++++++++++------------------
 net/appletalk/ddp.c           |  2 +-
 net/ipv4/af_inet.c            |  2 +-
 net/ipv4/arp.c                |  2 +-
 net/ipv4/fib_frontend.c       |  2 +-
 9 files changed, 98 insertions(+), 70 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2024-11-04  3:43 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-24 21:07 [PATCH v2 0/4][next] net: Avoid thousands of -Wflex-array-member-not-at-end warnings Gustavo A. R. Silva
2024-10-24 21:11 ` [PATCH v2 1/4][next] uapi: socket: Introduce struct sockaddr_legacy Gustavo A. R. Silva
2024-10-28 20:38   ` Andrew Lunn
2024-10-28 20:47     ` Johannes Berg
2024-10-28 23:40       ` Kees Cook
2024-10-28 23:31     ` Kees Cook
2024-10-28 23:34   ` Kees Cook
2024-11-01  1:01   ` Jakub Kicinski
2024-11-04  3:43     ` Kees Cook
2024-10-24 21:12 ` [PATCH v2 2/4][next] uapi: wireless: Avoid -Wflex-array-member-not-at-end warnings Gustavo A. R. Silva
2024-10-28 23:35   ` Kees Cook
2024-10-24 21:13 ` [PATCH v2 3/4][next] uapi: net: arp: " Gustavo A. R. Silva
2024-10-28 23:35   ` Kees Cook
2024-10-24 21:14 ` [PATCH v2 4/4][next] uapi: net: " Gustavo A. R. Silva
2024-10-28 23:37   ` Kees Cook

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).