* [PATCH v1 1/1] selftests: net: af_unix: cast void* to char* in call to macro TH_LOG()
@ 2024-08-12 0:22 Mirsad Todorovac
2024-08-12 15:17 ` Simon Horman
2024-08-12 18:45 ` Kuniyuki Iwashima
0 siblings, 2 replies; 4+ messages in thread
From: Mirsad Todorovac @ 2024-08-12 0:22 UTC (permalink / raw)
To: Paolo Abeni, Kuniyuki Iwashima, netdev, linux-kselftest,
linux-kernel
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Shuah Khan,
Mirsad Todorovac
GCC 13.2.0 reported warning about (void *) beeing used as a param where (char *) is expected:
In file included from msg_oob.c:14:
msg_oob.c: In function ‘__recvpair’:
../../kselftest_harness.h:106:40: warning: format ‘%s’ expects argument of type ‘char *’,
but argument 6 has type ‘const void *’ [-Wformat=]
106 | fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
| ^~~~~~~~~~~~~
../../kselftest_harness.h:101:17: note: in expansion of macro ‘__TH_LOG’
101 | __TH_LOG(fmt, ##__VA_ARGS__); \
| ^~~~~~~~
msg_oob.c:235:17: note: in expansion of macro ‘TH_LOG’
235 | TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : expected_buf);
| ^~~~~~
../../kselftest_harness.h:106:40: warning: format ‘%s’ expects argument of type ‘char *’,
but argument 6 has type ‘const void *’ [-Wformat=]
106 | fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
| ^~~~~~~~~~~~~
../../kselftest_harness.h:101:17: note: in expansion of macro ‘__TH_LOG’
101 | __TH_LOG(fmt, ##__VA_ARGS__); \
| ^~~~~~~~
msg_oob.c:259:25: note: in expansion of macro ‘TH_LOG’
259 | TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : expected_buf);
| ^~~~~~
Casting param to (char *) silences the warning.
Fixes: d098d77232c37 ("selftest: af_unix: Add msg_oob.c.")
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Kuniyuki Iwashima <kuniyu@amazon.com>
Cc: netdev@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Signed-off-by: Mirsad Todorovac <mtodorovac69@gmail.com>
---
v1:
initial version to fix the compiler warning.
tools/testing/selftests/net/af_unix/msg_oob.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/net/af_unix/msg_oob.c b/tools/testing/selftests/net/af_unix/msg_oob.c
index 16d0c172eaeb..ae2623eea8ae 100644
--- a/tools/testing/selftests/net/af_unix/msg_oob.c
+++ b/tools/testing/selftests/net/af_unix/msg_oob.c
@@ -232,7 +232,7 @@ static void __recvpair(struct __test_metadata *_metadata,
if (ret[0] != expected_len || recv_errno[0] != expected_errno) {
TH_LOG("AF_UNIX :%s", ret[0] < 0 ? strerror(recv_errno[0]) : recv_buf[0]);
- TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : expected_buf);
+ TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : (char *)expected_buf);
ASSERT_EQ(ret[0], expected_len);
ASSERT_EQ(recv_errno[0], expected_errno);
@@ -256,7 +256,7 @@ static void __recvpair(struct __test_metadata *_metadata,
cmp = strncmp(expected_buf, recv_buf[0], expected_len);
if (cmp) {
TH_LOG("AF_UNIX :%s", ret[0] < 0 ? strerror(recv_errno[0]) : recv_buf[0]);
- TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : expected_buf);
+ TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : (char *)expected_buf);
ASSERT_EQ(cmp, 0);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v1 1/1] selftests: net: af_unix: cast void* to char* in call to macro TH_LOG()
2024-08-12 0:22 [PATCH v1 1/1] selftests: net: af_unix: cast void* to char* in call to macro TH_LOG() Mirsad Todorovac
@ 2024-08-12 15:17 ` Simon Horman
2024-08-13 15:36 ` Mirsad Todorovac
2024-08-12 18:45 ` Kuniyuki Iwashima
1 sibling, 1 reply; 4+ messages in thread
From: Simon Horman @ 2024-08-12 15:17 UTC (permalink / raw)
To: Mirsad Todorovac
Cc: Paolo Abeni, Kuniyuki Iwashima, netdev, linux-kselftest,
linux-kernel, David S. Miller, Eric Dumazet, Jakub Kicinski,
Shuah Khan
On Mon, Aug 12, 2024 at 02:22:58AM +0200, Mirsad Todorovac wrote:
> GCC 13.2.0 reported warning about (void *) beeing used as a param where (char *) is expected:
nit: being
>
> In file included from msg_oob.c:14:
> msg_oob.c: In function ‘__recvpair’:
> ../../kselftest_harness.h:106:40: warning: format ‘%s’ expects argument of type ‘char *’,
> but argument 6 has type ‘const void *’ [-Wformat=]
> 106 | fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
> | ^~~~~~~~~~~~~
> ../../kselftest_harness.h:101:17: note: in expansion of macro ‘__TH_LOG’
> 101 | __TH_LOG(fmt, ##__VA_ARGS__); \
> | ^~~~~~~~
> msg_oob.c:235:17: note: in expansion of macro ‘TH_LOG’
> 235 | TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : expected_buf);
> | ^~~~~~
> ../../kselftest_harness.h:106:40: warning: format ‘%s’ expects argument of type ‘char *’,
> but argument 6 has type ‘const void *’ [-Wformat=]
> 106 | fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
> | ^~~~~~~~~~~~~
> ../../kselftest_harness.h:101:17: note: in expansion of macro ‘__TH_LOG’
> 101 | __TH_LOG(fmt, ##__VA_ARGS__); \
> | ^~~~~~~~
> msg_oob.c:259:25: note: in expansion of macro ‘TH_LOG’
> 259 | TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : expected_buf);
> | ^~~~~~
Thanks, I see this too.
> Casting param to (char *) silences the warning.
It seems that all callers pass a string as the expected_errno argument.
Perhaps it's type could be updated to char *, if that is what it is.
I think this would avoid the need to cast.
> Fixes: d098d77232c37 ("selftest: af_unix: Add msg_oob.c.")
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Eric Dumazet <edumazet@google.com>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Paolo Abeni <pabeni@redhat.com>
> Cc: Shuah Khan <shuah@kernel.org>
> Cc: Kuniyuki Iwashima <kuniyu@amazon.com>
> Cc: netdev@vger.kernel.org
> Cc: linux-kselftest@vger.kernel.org
> Signed-off-by: Mirsad Todorovac <mtodorovac69@gmail.com>
...
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH v1 1/1] selftests: net: af_unix: cast void* to char* in call to macro TH_LOG()
2024-08-12 15:17 ` Simon Horman
@ 2024-08-13 15:36 ` Mirsad Todorovac
0 siblings, 0 replies; 4+ messages in thread
From: Mirsad Todorovac @ 2024-08-13 15:36 UTC (permalink / raw)
To: Simon Horman
Cc: Paolo Abeni, Kuniyuki Iwashima, netdev, linux-kselftest,
linux-kernel, David S. Miller, Eric Dumazet, Jakub Kicinski,
Shuah Khan
Hi, Simon,
On 8/12/24 17:17, Simon Horman wrote:
> On Mon, Aug 12, 2024 at 02:22:58AM +0200, Mirsad Todorovac wrote:
>> GCC 13.2.0 reported warning about (void *) beeing used as a param where (char *) is expected:
>
> nit: being
Ouch! No patch is small enough that one should take its correctness for granted. :-O
>> In file included from msg_oob.c:14:
>> msg_oob.c: In function ‘__recvpair’:
>> ../../kselftest_harness.h:106:40: warning: format ‘%s’ expects argument of type ‘char *’,
>> but argument 6 has type ‘const void *’ [-Wformat=]
>> 106 | fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
>> | ^~~~~~~~~~~~~
>> ../../kselftest_harness.h:101:17: note: in expansion of macro ‘__TH_LOG’
>> 101 | __TH_LOG(fmt, ##__VA_ARGS__); \
>> | ^~~~~~~~
>> msg_oob.c:235:17: note: in expansion of macro ‘TH_LOG’
>> 235 | TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : expected_buf);
>> | ^~~~~~
>> ../../kselftest_harness.h:106:40: warning: format ‘%s’ expects argument of type ‘char *’,
>> but argument 6 has type ‘const void *’ [-Wformat=]
>> 106 | fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
>> | ^~~~~~~~~~~~~
>> ../../kselftest_harness.h:101:17: note: in expansion of macro ‘__TH_LOG’
>> 101 | __TH_LOG(fmt, ##__VA_ARGS__); \
>> | ^~~~~~~~
>> msg_oob.c:259:25: note: in expansion of macro ‘TH_LOG’
>> 259 | TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : expected_buf);
>> | ^~~~~~
>
> Thanks, I see this too.
>
>> Casting param to (char *) silences the warning.
>
> It seems that all callers pass a string as the expected_errno argument.
> Perhaps it's type could be updated to char *, if that is what it is.
> I think this would avoid the need to cast.
Agreed and verified. If it is OK with you, I might post a v2.
Best regards,
Mirsad Todorovac
>> Fixes: d098d77232c37 ("selftest: af_unix: Add msg_oob.c.")
>> Cc: "David S. Miller" <davem@davemloft.net>
>> Cc: Eric Dumazet <edumazet@google.com>
>> Cc: Jakub Kicinski <kuba@kernel.org>
>> Cc: Paolo Abeni <pabeni@redhat.com>
>> Cc: Shuah Khan <shuah@kernel.org>
>> Cc: Kuniyuki Iwashima <kuniyu@amazon.com>
>> Cc: netdev@vger.kernel.org
>> Cc: linux-kselftest@vger.kernel.org
>> Signed-off-by: Mirsad Todorovac <mtodorovac69@gmail.com>
>
> ...
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v1 1/1] selftests: net: af_unix: cast void* to char* in call to macro TH_LOG()
2024-08-12 0:22 [PATCH v1 1/1] selftests: net: af_unix: cast void* to char* in call to macro TH_LOG() Mirsad Todorovac
2024-08-12 15:17 ` Simon Horman
@ 2024-08-12 18:45 ` Kuniyuki Iwashima
1 sibling, 0 replies; 4+ messages in thread
From: Kuniyuki Iwashima @ 2024-08-12 18:45 UTC (permalink / raw)
To: mtodorovac69
Cc: davem, edumazet, kuba, kuniyu, linux-kernel, linux-kselftest,
netdev, pabeni, shuah, jain.abhinav177
From: Mirsad Todorovac <mtodorovac69@gmail.com>
Date: Mon, 12 Aug 2024 02:22:58 +0200
> GCC 13.2.0 reported warning about (void *) beeing used as a param where (char *) is expected:
>
> In file included from msg_oob.c:14:
> msg_oob.c: In function ‘__recvpair’:
> ../../kselftest_harness.h:106:40: warning: format ‘%s’ expects argument of type ‘char *’,
> but argument 6 has type ‘const void *’ [-Wformat=]
> 106 | fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
> | ^~~~~~~~~~~~~
> ../../kselftest_harness.h:101:17: note: in expansion of macro ‘__TH_LOG’
> 101 | __TH_LOG(fmt, ##__VA_ARGS__); \
> | ^~~~~~~~
> msg_oob.c:235:17: note: in expansion of macro ‘TH_LOG’
> 235 | TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : expected_buf);
> | ^~~~~~
> ../../kselftest_harness.h:106:40: warning: format ‘%s’ expects argument of type ‘char *’,
> but argument 6 has type ‘const void *’ [-Wformat=]
> 106 | fprintf(TH_LOG_STREAM, "# %s:%d:%s:" fmt "\n", \
> | ^~~~~~~~~~~~~
> ../../kselftest_harness.h:101:17: note: in expansion of macro ‘__TH_LOG’
> 101 | __TH_LOG(fmt, ##__VA_ARGS__); \
> | ^~~~~~~~
> msg_oob.c:259:25: note: in expansion of macro ‘TH_LOG’
> 259 | TH_LOG("Expected:%s", expected_errno ? strerror(expected_errno) : expected_buf);
> | ^~~~~~
>
> Casting param to (char *) silences the warning.
>
> Fixes: d098d77232c37 ("selftest: af_unix: Add msg_oob.c.")
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Eric Dumazet <edumazet@google.com>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Paolo Abeni <pabeni@redhat.com>
> Cc: Shuah Khan <shuah@kernel.org>
> Cc: Kuniyuki Iwashima <kuniyu@amazon.com>
> Cc: netdev@vger.kernel.org
> Cc: linux-kselftest@vger.kernel.org
> Signed-off-by: Mirsad Todorovac <mtodorovac69@gmail.com>
Thanks for the patch!
but I found the same patch posted a bit earlier here,
and Abhinav will post v2.
https://lore.kernel.org/netdev/20240810134037.669765-1-jain.abhinav177@gmail.com/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-08-13 15:37 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-12 0:22 [PATCH v1 1/1] selftests: net: af_unix: cast void* to char* in call to macro TH_LOG() Mirsad Todorovac
2024-08-12 15:17 ` Simon Horman
2024-08-13 15:36 ` Mirsad Todorovac
2024-08-12 18:45 ` Kuniyuki Iwashima
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).