]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftest: net: fix socklen_t type mismatch in sctp_collision test
authorAnkit Khushwaha <ankitkhushwaha.linux@gmail.com>
Tue, 28 Oct 2025 17:29:47 +0000 (22:59 +0530)
committerJakub Kicinski <kuba@kernel.org>
Thu, 30 Oct 2025 00:39:26 +0000 (17:39 -0700)
Socket APIs like recvfrom(), accept(), and getsockname() expect socklen_t*
arg, but tests were using int variables. This causes -Wpointer-sign
warnings on platforms where socklen_t is unsigned.

Change the variable type from int to socklen_t to resolve the warning and
ensure type safety across platforms.

warning fixed:

sctp_collision.c:62:70: warning: passing 'int *' to parameter of
type 'socklen_t *' (aka 'unsigned int *') converts between pointers to
integer types with different sign [-Wpointer-sign]
   62 |                 ret = recvfrom(sd, buf, sizeof(buf),
0, (struct sockaddr *)&daddr, &len);
      |                                                           ^~~~
/usr/include/sys/socket.h:165:27: note: passing argument to
parameter '__addr_len' here
  165 |                          socklen_t *__restrict __addr_len);
      |                                                ^

Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Signed-off-by: Ankit Khushwaha <ankitkhushwaha.linux@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20251028172947.53153-1-ankitkhushwaha.linux@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/netfilter/sctp_collision.c

index 21bb1cfd8a856105d1549d6ecba0f80a42856846..b282d1785c9b061874fef5081eb885aa04f15d02 100644 (file)
@@ -9,9 +9,10 @@
 int main(int argc, char *argv[])
 {
        struct sockaddr_in saddr = {}, daddr = {};
-       int sd, ret, len = sizeof(daddr);
+       socklen_t len = sizeof(daddr);
        struct timeval tv = {25, 0};
        char buf[] = "hello";
+       int sd, ret;
 
        if (argc != 6 || (strcmp(argv[1], "server") && strcmp(argv[1], "client"))) {
                printf("%s <server|client> <LOCAL_IP> <LOCAL_PORT> <REMOTE_IP> <REMOTE_PORT>\n",