Re: [PATCH 6.6 046/139] selftests/net: fix uninitialized variables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
> On 9 Jul 2024, at 12:09, Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> 
> 6.6-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: John Hubbard <jhubbard@xxxxxxxxxx>
> 
> [ Upstream commit eb709b5f6536636dfb87b85ded0b2af9bb6cd9e6 ]
> 
> When building with clang, via:
> 
>    make LLVM=1 -C tools/testing/selftest
> 
> ...clang warns about three variables that are not initialized in all
> cases:
> 
> 1) The opt_ipproto_off variable is used uninitialized if "testname" is
> not "ip". Willem de Bruijn pointed out that this is an actual bug, and
> suggested the fix that I'm using here (thanks!).
> 
> 2) The addr_len is used uninitialized, but only in the assert case,
>   which bails out, so this is harmless.
> 
> 3) The family variable in add_listener() is only used uninitialized in
>   the error case (neither IPv4 nor IPv6 is specified), so it's also
>   harmless.
> 
> Fix by initializing each variable.
> 
> Signed-off-by: John Hubbard <jhubbard@xxxxxxxxxx>
> Reviewed-by: Willem de Bruijn <willemb@xxxxxxxxxx>
> Acked-by: Mat Martineau <martineau@xxxxxxxxxx>
> Link: https://lore.kernel.org/r/20240506190204.28497-1-jhubbard@xxxxxxxxxx
> Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> ---
> tools/testing/selftests/net/gro.c                 | 3 +++
> tools/testing/selftests/net/ip_local_port_range.c | 2 +-
> tools/testing/selftests/net/mptcp/pm_nl_ctl.c     | 2 +-
> 3 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/net/gro.c b/tools/testing/selftests/net/gro.c
> index 30024d0ed3739..b204df4f33322 100644
> --- a/tools/testing/selftests/net/gro.c
> +++ b/tools/testing/selftests/net/gro.c
> @@ -113,6 +113,9 @@ static void setup_sock_filter(int fd)
> next_off = offsetof(struct ipv6hdr, nexthdr);
> ipproto_off = ETH_HLEN + next_off;
> 
> + /* Overridden later if exthdrs are used: */
> + opt_ipproto_off = ipproto_off;
> +

This breaks selftest compilation on 6.6, because opt_ipproto_off is not
defined in the first place in 6.6

> if (strcmp(testname, "ip") == 0) {
> if (proto == PF_INET)
> optlen = sizeof(struct ip_timestamp);
> diff --git a/tools/testing/selftests/net/ip_local_port_range.c b/tools/testing/selftests/net/ip_local_port_range.c
> index 75e3fdacdf735..2465ff5bb3a8e 100644
> --- a/tools/testing/selftests/net/ip_local_port_range.c
> +++ b/tools/testing/selftests/net/ip_local_port_range.c
> @@ -343,7 +343,7 @@ TEST_F(ip_local_port_range, late_bind)
> struct sockaddr_in v4;
> struct sockaddr_in6 v6;
> } addr;
> - socklen_t addr_len;
> + socklen_t addr_len = 0;
> const int one = 1;
> int fd, err;
> __u32 range;
> diff --git a/tools/testing/selftests/net/mptcp/pm_nl_ctl.c b/tools/testing/selftests/net/mptcp/pm_nl_ctl.c
> index 49369c4a5f261..763402dd17742 100644
> --- a/tools/testing/selftests/net/mptcp/pm_nl_ctl.c
> +++ b/tools/testing/selftests/net/mptcp/pm_nl_ctl.c
> @@ -1239,7 +1239,7 @@ int add_listener(int argc, char *argv[])
> struct sockaddr_storage addr;
> struct sockaddr_in6 *a6;
> struct sockaddr_in *a4;
> - u_int16_t family;
> + u_int16_t family = AF_UNSPEC;
> int enable = 1;
> int sock;
> int err;
> -- 
> 2.43.0
> 

Ignat






[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux