[PATCH] selftests/net: initialize char variable to null

Ankit Khushwaha posted 1 patch 1 week ago
There is a newer version of this series
tools/testing/selftests/net/so_txtime.c   | 2 +-
tools/testing/selftests/net/txtimestamp.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
[PATCH] selftests/net: initialize char variable to null
Posted by Ankit Khushwaha 1 week ago
char variable in 'so_txtime.c' & 'txtimestamp.c' left uninitilized
by when switch default case taken. raises following warning.

	txtimestamp.c:240:2: warning: variable 'tsname' is used uninitialized
	whenever switch default is taken [-Wsometimes-uninitialized]

	so_txtime.c:210:3: warning: variable 'reason' is used uninitialized
	whenever switch default is taken [-Wsometimes-uninitialized]

initialize these variables to NULL to fix this.

Signed-off-by: Ankit Khushwaha <ankitkhushwaha.linux@gmail.com>
---
 tools/testing/selftests/net/so_txtime.c   | 2 +-
 tools/testing/selftests/net/txtimestamp.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/net/so_txtime.c b/tools/testing/selftests/net/so_txtime.c
index 8457b7ccbc09..b76df1efc2ef 100644
--- a/tools/testing/selftests/net/so_txtime.c
+++ b/tools/testing/selftests/net/so_txtime.c
@@ -174,7 +174,7 @@ static int do_recv_errqueue_timeout(int fdt)
 	msg.msg_controllen = sizeof(control);

 	while (1) {
-		const char *reason;
+		const char *reason = NULL;

 		ret = recvmsg(fdt, &msg, MSG_ERRQUEUE);
 		if (ret == -1 && errno == EAGAIN)
diff --git a/tools/testing/selftests/net/txtimestamp.c b/tools/testing/selftests/net/txtimestamp.c
index dae91eb97d69..bcc14688661d 100644
--- a/tools/testing/selftests/net/txtimestamp.c
+++ b/tools/testing/selftests/net/txtimestamp.c
@@ -217,7 +217,7 @@ static void print_timestamp_usr(void)
 static void print_timestamp(struct scm_timestamping *tss, int tstype,
 			    int tskey, int payload_len)
 {
-	const char *tsname;
+	const char *tsname = NULL;

 	validate_key(tskey, tstype);

--
2.52.0
Re: [PATCH] selftests/net: initialize char variable to null
Posted by Willem de Bruijn 1 week ago
Ankit Khushwaha wrote:
> char variable in 'so_txtime.c' & 'txtimestamp.c' left uninitilized
> by when switch default case taken. raises following warning.
> 
> 	txtimestamp.c:240:2: warning: variable 'tsname' is used uninitialized
> 	whenever switch default is taken [-Wsometimes-uninitialized]
> 
> 	so_txtime.c:210:3: warning: variable 'reason' is used uninitialized
> 	whenever switch default is taken [-Wsometimes-uninitialized]
> 
> initialize these variables to NULL to fix this.
> 
> Signed-off-by: Ankit Khushwaha <ankitkhushwaha.linux@gmail.com>

These are false positives as the default branches in both cases exit
the program with error(..).

Since we do not observe these in normal kernel compilations: are you
enabling non-standard warnings?

> ---
>  tools/testing/selftests/net/so_txtime.c   | 2 +-
>  tools/testing/selftests/net/txtimestamp.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/net/so_txtime.c b/tools/testing/selftests/net/so_txtime.c
> index 8457b7ccbc09..b76df1efc2ef 100644
> --- a/tools/testing/selftests/net/so_txtime.c
> +++ b/tools/testing/selftests/net/so_txtime.c
> @@ -174,7 +174,7 @@ static int do_recv_errqueue_timeout(int fdt)
>  	msg.msg_controllen = sizeof(control);
> 
>  	while (1) {
> -		const char *reason;
> +		const char *reason = NULL;
> 
>  		ret = recvmsg(fdt, &msg, MSG_ERRQUEUE);
>  		if (ret == -1 && errno == EAGAIN)
> diff --git a/tools/testing/selftests/net/txtimestamp.c b/tools/testing/selftests/net/txtimestamp.c
> index dae91eb97d69..bcc14688661d 100644
> --- a/tools/testing/selftests/net/txtimestamp.c
> +++ b/tools/testing/selftests/net/txtimestamp.c
> @@ -217,7 +217,7 @@ static void print_timestamp_usr(void)
>  static void print_timestamp(struct scm_timestamping *tss, int tstype,
>  			    int tskey, int payload_len)
>  {
> -	const char *tsname;
> +	const char *tsname = NULL;
> 
>  	validate_key(tskey, tstype);
> 
> --
> 2.52.0
>
Re: [PATCH] selftests/net: initialize char variable to null
Posted by Ankit Khushwaha 1 week ago
On Mon, Nov 24, 2025 at 12:46:52PM -0500, Willem de Bruijn wrote:
> Ankit Khushwaha wrote:
> > char variable in 'so_txtime.c' & 'txtimestamp.c' left uninitilized
> > by when switch default case taken. raises following warning.
> > 
> > 	txtimestamp.c:240:2: warning: variable 'tsname' is used uninitialized
> > 	whenever switch default is taken [-Wsometimes-uninitialized]
> > 
> > 	so_txtime.c:210:3: warning: variable 'reason' is used uninitialized
> > 	whenever switch default is taken [-Wsometimes-uninitialized]
> > 
> > initialize these variables to NULL to fix this.
> > 
> > Signed-off-by: Ankit Khushwaha <ankitkhushwaha.linux@gmail.com>
> 
> These are false positives as the default branches in both cases exit
> the program with error(..).
> 
> Since we do not observe these in normal kernel compilations: are you
> enabling non-standard warnings?

Hi Willem,

this warning appeared while building the 'tools/testing/selftests/net'
multiple times. 
Cmd used to build
	make -C tools/testing/selftests/net  CC=clang V=1 -j8

while test building by "make -C tools/testing/selftests/ CC=clang V=1
-j8" doesn't raises these warning.

Thanks,
-- Ankit
Re: [PATCH] selftests/net: initialize char variable to null
Posted by Willem de Bruijn 1 week ago
Ankit Khushwaha wrote:
> On Mon, Nov 24, 2025 at 12:46:52PM -0500, Willem de Bruijn wrote:
> > Ankit Khushwaha wrote:
> > > char variable in 'so_txtime.c' & 'txtimestamp.c' left uninitilized
> > > by when switch default case taken. raises following warning.
> > > 
> > > 	txtimestamp.c:240:2: warning: variable 'tsname' is used uninitialized
> > > 	whenever switch default is taken [-Wsometimes-uninitialized]
> > > 
> > > 	so_txtime.c:210:3: warning: variable 'reason' is used uninitialized
> > > 	whenever switch default is taken [-Wsometimes-uninitialized]
> > > 
> > > initialize these variables to NULL to fix this.
> > > 
> > > Signed-off-by: Ankit Khushwaha <ankitkhushwaha.linux@gmail.com>
> > 
> > These are false positives as the default branches in both cases exit
> > the program with error(..).
> > 
> > Since we do not observe these in normal kernel compilations: are you
> > enabling non-standard warnings?
> 
> Hi Willem,
> 
> this warning appeared while building the 'tools/testing/selftests/net'
> multiple times. 
> Cmd used to build
> 	make -C tools/testing/selftests/net  CC=clang V=1 -j8
> 
> while test building by "make -C tools/testing/selftests/ CC=clang V=1
> -j8" doesn't raises these warning.

This does not reproduce for me.

Can you share the full clang command that V=1 outputs, as well as the
output oof clang --version.
Re: [PATCH] selftests/net: initialize char variable to null
Posted by Ankit Khushwaha 6 days, 20 hours ago
On Mon, Nov 24, 2025 at 01:15:33PM -0500, Willem de Bruijn wrote:
> This does not reproduce for me.
> 
> Can you share the full clang command that V=1 outputs, as well as the
> output oof clang --version.

Hi Willem,
I have added clang output in 
https://gist.github.com/ankitkhushwaha/8e93e3d37917b3571a7ce0e9c9806f18

Thanks,
Ankit
Re: [PATCH] selftests/net: initialize char variable to null
Posted by Willem de Bruijn 6 days, 8 hours ago
Ankit Khushwaha wrote:
> On Mon, Nov 24, 2025 at 01:15:33PM -0500, Willem de Bruijn wrote:
> > This does not reproduce for me.
> > 
> > Can you share the full clang command that V=1 outputs, as well as the
> > output oof clang --version.
> 
> Hi Willem,
> I have added clang output in 
> https://gist.github.com/ankitkhushwaha/8e93e3d37917b3571a7ce0e9c9806f18
> 
> Thanks,
> Ankit

I see. This is with clang-21. It did not trigger for me with clang-19.

I was able to reproduce with Ubuntu 25.10.

Okay, good to suppress these false positives with normal builds.

Reviewed-by: Willem de Bruijn <willemb@google.com>
Re: [PATCH] selftests/net: initialize char variable to null
Posted by Willem de Bruijn 6 days, 8 hours ago
Willem de Bruijn wrote:
> Ankit Khushwaha wrote:
> > On Mon, Nov 24, 2025 at 01:15:33PM -0500, Willem de Bruijn wrote:
> > > This does not reproduce for me.
> > > 
> > > Can you share the full clang command that V=1 outputs, as well as the
> > > output oof clang --version.
> > 
> > Hi Willem,
> > I have added clang output in 
> > https://gist.github.com/ankitkhushwaha/8e93e3d37917b3571a7ce0e9c9806f18
> > 
> > Thanks,
> > Ankit
> 
> I see. This is with clang-21. It did not trigger for me with clang-19.
> 
> I was able to reproduce with Ubuntu 25.10.
> 
> Okay, good to suppress these false positives with normal builds.
> 
> Reviewed-by: Willem de Bruijn <willemb@google.com>
> 

The patch status is already changes requested.

Please resubmit and target [PATCH net-next]