aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2024-10-30 21:36:18 +0100
committerStefano Brivio <sbrivio@redhat.com>2024-11-05 23:46:33 +0100
commit9afce0b45c396e43a5499f227cc21849812a435b (patch)
tree05c62d5c801bbbd0be21d92167ee0c2ea57a06ef
parentd165d36a0c88fe8665da012f35cb60ced991568b (diff)
downloadpasst-9afce0b45c396e43a5499f227cc21849812a435b.tar
passt-9afce0b45c396e43a5499f227cc21849812a435b.tar.gz
passt-9afce0b45c396e43a5499f227cc21849812a435b.tar.bz2
passt-9afce0b45c396e43a5499f227cc21849812a435b.tar.lz
passt-9afce0b45c396e43a5499f227cc21849812a435b.tar.xz
passt-9afce0b45c396e43a5499f227cc21849812a435b.tar.zst
passt-9afce0b45c396e43a5499f227cc21849812a435b.zip
tap: Explicitly cast TUNSETIFF to fix build warning with musl on ppc64le
On ppc64le, TUNSETIFF happens to be 2147767498, which is bigger than INT_MAX (2^31 - 1), and musl declares the second argument of ioctl() as 'int', not 'unsigned long' like glibc does, probably because of how POSIX specifies the equivalent argument, int dcmd, in posix_devctl(), so gcc reports a warning: tap.c: In function 'tap_ns_tun': tap.c:1291:24: warning: overflow in conversion from 'long unsigned int' to 'int' changes value from '2147767498' to '-2147199798' [-Woverflow] 1291 | rc = ioctl(fd, TUNSETIFF, &ifr); | ^~~~~~~~~ We don't care about that overflow, so explicitly cast TUNSETIFF to int. Signed-off-by: Stefano Brivio <sbrivio@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--tap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tap.c b/tap.c
index cfb82e9..f638f2c 100644
--- a/tap.c
+++ b/tap.c
@@ -1288,7 +1288,7 @@ static int tap_ns_tun(void *arg)
if (fd < 0)
die_perror("Failed to open() /dev/net/tun");
- rc = ioctl(fd, TUNSETIFF, &ifr);
+ rc = ioctl(fd, (int)TUNSETIFF, &ifr);
if (rc < 0)
die_perror("TUNSETIFF ioctl on /dev/net/tun failed");