lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZtcrqPPEiX/L+2i6@debian>
Date: Tue, 3 Sep 2024 17:30:48 +0200
From: Guillaume Nault <gnault@...hat.com>
To: Ido Schimmel <idosch@...dia.com>
Cc: netdev@...r.kernel.org, davem@...emloft.net, kuba@...nel.org,
	pabeni@...hat.com, edumazet@...gle.com, dsahern@...nel.org
Subject: Re: [PATCH net-next] ipv4: Fix user space build failure due to
 header change

On Tue, Sep 03, 2024 at 04:35:54PM +0300, Ido Schimmel wrote:
> RT_TOS() from include/uapi/linux/in_route.h is defined using
> IPTOS_TOS_MASK from include/uapi/linux/ip.h. This is problematic for
> files such as include/net/ip_fib.h that want to use RT_TOS() as without
> including both header files kernel compilation fails:
> 
> In file included from ./include/net/ip_fib.h:25,
>                  from ./include/net/route.h:27,
>                  from ./include/net/lwtunnel.h:9,
>                  from net/core/dst.c:24:
> ./include/net/ip_fib.h: In function ‘fib_dscp_masked_match’:
> ./include/uapi/linux/in_route.h:31:32: error: ‘IPTOS_TOS_MASK’ undeclared (first use in this function)
>    31 | #define RT_TOS(tos)     ((tos)&IPTOS_TOS_MASK)
>       |                                ^~~~~~~~~~~~~~
> ./include/net/ip_fib.h:440:45: note: in expansion of macro ‘RT_TOS’
>   440 |         return dscp == inet_dsfield_to_dscp(RT_TOS(fl4->flowi4_tos));
> 
> Therefore, cited commit changed linux/in_route.h to include linux/ip.h.
> However, as reported by David, this breaks iproute2 compilation due
> overlapping definitions between linux/ip.h and
> /usr/include/netinet/ip.h:
> 
> In file included from ../include/uapi/linux/in_route.h:5,
>                  from iproute.c:19:
> ../include/uapi/linux/ip.h:25:9: warning: "IPTOS_TOS" redefined
>    25 | #define IPTOS_TOS(tos)          ((tos)&IPTOS_TOS_MASK)
>       |         ^~~~~~~~~
> In file included from iproute.c:17:
> /usr/include/netinet/ip.h:222:9: note: this is the location of the previous definition
>   222 | #define IPTOS_TOS(tos)          ((tos) & IPTOS_TOS_MASK)
> 
> Fix by changing include/net/ip_fib.h to include linux/ip.h. Note that
> usage of RT_TOS() should not spread further in the kernel due to recent
> work in this area.

Reviewed-by: Guillaume Nault <gnault@...hat.com>


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ