From: Kees Cook <kees@kernel.org>
To: Andrew Lunn <andrew@lunn.ch>, Johannes Berg <johannes@sipsolutions.net>
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>,
Andrew Lunn <andrew+netdev@lunn.ch>,
David Ahern <dsahern@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-hardening@vger.kernel.org
Subject: Re: [PATCH 4/5][next] uapi: net: arp: Avoid -Wflex-array-member-not-at-end warnings
Date: Wed, 16 Oct 2024 09:45:09 -0700 [thread overview]
Message-ID: <202410160942.000495E@keescook> (raw)
In-Reply-To: <ac2ea738-09fb-4d03-b91c-d54bcfb893c6@lunn.ch>
On Wed, Oct 16, 2024 at 02:30:02PM +0200, Andrew Lunn wrote:
> On Tue, Oct 15, 2024 at 06:32:43PM -0600, Gustavo A. R. Silva wrote:
> > -Wflex-array-member-not-at-end was introduced in GCC-14, and we are
> > getting ready to enable it, globally.
> >
> > Address the following warnings by changing the type of the middle struct
> > members in a couple of composite structs, which are currently causing
> > trouble, from `struct sockaddr` to `struct sockaddr_legacy`. Note that
> > the latter struct doesn't contain a flexible-array member.
> >
> > include/uapi/linux/if_arp.h:118:25: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
> > include/uapi/linux/if_arp.h:119:25: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
> > include/uapi/linux/if_arp.h:121:25: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
> > include/uapi/linux/if_arp.h:126:25: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
> > include/uapi/linux/if_arp.h:127:25: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
> >
> > Also, update some related code, accordingly.
> >
> > No binary differences are present after these changes.
>
> These are clearly UAPI files. It would be good to state in the commit
> message why this is a safe change, at the source level.
I think we can avoid complicating UAPI by doing something like this in
include/uapi/linux/socket.h:
#ifdef __KERNEL__
#define __kernel_sockaddr_legacy sockaddr_legacy
#else
#define __kernel_sockaddr_legacy sockaddr
#endif
And then the UAPI changes can use __kernel_sockaddr_legacy and userspace
will resolve to sockaddr (unchanged), and the kernel internals will
resolve to sockaddr_legacy (fixing the warnings).
-Kees
--
Kees Cook
next prev parent reply other threads:[~2024-10-16 16:45 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-16 0:25 [PATCH 0/5][next] net: Avoid thousands of -Wflex-array-member-not-at-end warnings Gustavo A. R. Silva
2024-10-16 0:27 ` [PATCH 1/5][next] net: dev: Introduce struct sockaddr_legacy Gustavo A. R. Silva
2024-10-16 3:30 ` Kuniyuki Iwashima
2024-10-22 17:07 ` Gustavo A. R. Silva
2024-10-22 12:13 ` David Laight
2024-10-22 17:30 ` Gustavo A. R. Silva
2024-10-16 0:29 ` [PATCH 2/5][next] nfsd: avoid -Wflex-array-member-not-at-end warnings Gustavo A. R. Silva
2024-10-16 14:16 ` Chuck Lever
2024-10-17 0:51 ` NeilBrown
2024-10-16 0:31 ` [PATCH 3/5][next] uapi: wireless: Avoid " Gustavo A. R. Silva
2024-10-16 9:06 ` Johannes Berg
2024-10-16 0:32 ` [PATCH 4/5][next] uapi: net: arp: " Gustavo A. R. Silva
2024-10-16 3:44 ` Kuniyuki Iwashima
2024-10-16 12:30 ` Andrew Lunn
2024-10-16 16:45 ` Kees Cook [this message]
2024-10-18 18:55 ` Gustavo A. R. Silva
2024-10-16 0:33 ` [PATCH 5/5][next] uapi: net: " Gustavo A. R. Silva
2024-10-16 3:51 ` Kuniyuki Iwashima
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202410160942.000495E@keescook \
--to=kees@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=gustavoars@kernel.org \
--cc=johannes@sipsolutions.net \
--cc=kuba@kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.