Subject: Re: [PATCH net-next] net: Silence false field-spanning write warning in ip_tunnel_info_opts_set() memcpy

From: Kees Cook <[email-masked]>
Date: Thu, 9 Jan 2025 08:52:50 -0800

On Thu, Jan 09, 2025 at 11:00:24AM +0200, Gal Pressman wrote:
> On 08/01/2025 1:28, Kees Cook wrote:
> >> This resolves the following warning:
> >>  memcpy: detected field-spanning write (size 8) of single field "_Generic(info, const struct ip_tunnel_info * : ((const void *)((info) + 1)), struct ip_tunnel_info * : ((void *)((info) + 1)) )" at include/net/ip_tunnels.h:662 (size 0)
> > 
> > Then you can drop this macro and just use: info->options
> > 
> > Looks like you'd need to do it for all the types in struct metadata_dst, but at least you could stop hiding it from the compiler. :)
> 
> Can you please explain the "do it for all the types in struct
> metadata_dst" part?
> AFAICT, struct ip_tunnel_info is the only one that's extendable, I don't
> think others need to be modified.

Ah, sorry. If that's the case, then just ip_tunnel_info is fine. (Is all
of the metadata_dst trailing byte allocation logic just for
ip_tunnel_info?)

-Kees

-- 
Kees Cook