public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
* [PATCH v2 0/3] Fix some build warnings and errors for 32-bit and musl
@ 2023-11-30 10:07 Stefano Brivio
  2023-11-30 10:07 ` [PATCH v2 1/3] treewide: Use 'z' length modifier for size_t/ssize_t conversions Stefano Brivio
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Stefano Brivio @ 2023-11-30 10:07 UTC (permalink / raw)
  To: passt-dev; +Cc: David Gibson, lemmi

v2:
 - In 1/3, use %zi as format specifier for to_write in
   tcp_splice_sock_handler()
 - Drop 3/4, David will deal with CONN_IDX() separately

Stefano Brivio (3):
  treewide: Use 'z' length modifier for size_t/ssize_t conversions
  packet: Offset plus length is not always uint32_t, but it's always
    size_t
  port_fwd, util: Include additional headers to fix build with musl

 netlink.c    |  2 +-
 packet.c     | 14 +++++++-------
 pcap.c       |  4 ++--
 port_fwd.c   |  2 ++
 tap.c        | 12 ++++++------
 tcp.c        |  3 ++-
 tcp_splice.c |  8 ++++----
 util.h       |  1 +
 8 files changed, 25 insertions(+), 21 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 1/3] treewide: Use 'z' length modifier for size_t/ssize_t conversions
  2023-11-30 10:07 [PATCH v2 0/3] Fix some build warnings and errors for 32-bit and musl Stefano Brivio
@ 2023-11-30 10:07 ` Stefano Brivio
  2023-12-01  0:01   ` David Gibson
  2023-11-30 10:07 ` [PATCH v2 2/3] packet: Offset plus length is not always uint32_t, but it's always size_t Stefano Brivio
  2023-11-30 10:07 ` [PATCH v2 3/3] port_fwd, util: Include additional headers to fix build with musl Stefano Brivio
  2 siblings, 1 reply; 6+ messages in thread
From: Stefano Brivio @ 2023-11-30 10:07 UTC (permalink / raw)
  To: passt-dev; +Cc: David Gibson, lemmi

Types size_t and ssize_t are not necessarily long, it depends on the
architecture.

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
---
 netlink.c    |  2 +-
 packet.c     | 14 +++++++-------
 pcap.c       |  4 ++--
 tap.c        | 12 ++++++------
 tcp.c        |  3 ++-
 tcp_splice.c |  8 ++++----
 6 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/netlink.c b/netlink.c
index 6cc04a0..379d46e 100644
--- a/netlink.c
+++ b/netlink.c
@@ -130,7 +130,7 @@ static uint32_t nl_send(int s, void *req, uint16_t type,
 	if (n < 0)
 		die("netlink: Failed to send(): %s", strerror(errno));
 	else if (n < len)
-		die("netlink: Short send (%lu of %lu bytes)", n, len);
+		die("netlink: Short send (%zd of %zd bytes)", n, len);
 
 	return nh->nlmsg_seq;
 }
diff --git a/packet.c b/packet.c
index 9589824..12ac76b 100644
--- a/packet.c
+++ b/packet.c
@@ -36,7 +36,7 @@ void packet_add_do(struct pool *p, size_t len, const char *start,
 	size_t idx = p->count;
 
 	if (idx >= p->size) {
-		trace("add packet index %lu to pool with size %lu, %s:%i",
+		trace("add packet index %zu to pool with size %zu, %s:%i",
 		      idx, p->size, func, line);
 		return;
 	}
@@ -48,14 +48,14 @@ void packet_add_do(struct pool *p, size_t len, const char *start,
 	}
 
 	if (start + len > p->buf + p->buf_size) {
-		trace("add packet start %p, length: %lu, buffer end %p, %s:%i",
+		trace("add packet start %p, length: %zu, buffer end %p, %s:%i",
 		      (void *)start, len, (void *)(p->buf + p->buf_size),
 		      func, line);
 		return;
 	}
 
 	if (len > UINT16_MAX) {
-		trace("add packet length %lu, %s:%i", len, func, line);
+		trace("add packet length %zu, %s:%i", len, func, line);
 		return;
 	}
 
@@ -90,7 +90,7 @@ void *packet_get_do(const struct pool *p, size_t idx, size_t offset,
 {
 	if (idx >= p->size || idx >= p->count) {
 		if (func) {
-			trace("packet %lu from pool size: %lu, count: %lu, "
+			trace("packet %zu from pool size: %zu, count: %zu, "
 			      "%s:%i", idx, p->size, p->count, func, line);
 		}
 		return NULL;
@@ -98,7 +98,7 @@ void *packet_get_do(const struct pool *p, size_t idx, size_t offset,
 
 	if (len > UINT16_MAX || len + offset > UINT32_MAX) {
 		if (func) {
-			trace("packet data length %lu, offset %lu, %s:%i",
+			trace("packet data length %zu, offset %zu, %s:%i",
 			      len, offset, func, line);
 		}
 		return NULL;
@@ -106,7 +106,7 @@ void *packet_get_do(const struct pool *p, size_t idx, size_t offset,
 
 	if (p->pkt[idx].offset + len + offset > p->buf_size) {
 		if (func) {
-			trace("packet offset plus length %lu from size %lu, "
+			trace("packet offset plus length %lu from size %zu, "
 			      "%s:%i", p->pkt[idx].offset + len + offset,
 			      p->buf_size, func, line);
 		}
@@ -115,7 +115,7 @@ void *packet_get_do(const struct pool *p, size_t idx, size_t offset,
 
 	if (len + offset > p->pkt[idx].len) {
 		if (func) {
-			trace("data length %lu, offset %lu from length %u, "
+			trace("data length %zu, offset %zu from length %u, "
 			      "%s:%i", len, offset, p->pkt[idx].len,
 			      func, line);
 		}
diff --git a/pcap.c b/pcap.c
index 524612a..501d52d 100644
--- a/pcap.c
+++ b/pcap.c
@@ -101,7 +101,7 @@ void pcap(const char *pkt, size_t len)
 
 	gettimeofday(&tv, NULL);
 	if (pcap_frame(pkt, len, &tv) != 0)
-		debug("Cannot log packet, length %lu", len);
+		debug("Cannot log packet, length %zu", len);
 }
 
 /**
@@ -123,7 +123,7 @@ void pcap_multiple(const struct iovec *iov, unsigned int n, size_t offset)
 	for (i = 0; i < n; i++) {
 		if (pcap_frame((char *)iov[i].iov_base + offset,
 			       iov[i].iov_len - offset, &tv) != 0) {
-			debug("Cannot log packet, length %lu",
+			debug("Cannot log packet, length %zu",
 			      iov->iov_len - offset);
 			return;
 		}
diff --git a/tap.c b/tap.c
index 4f11000..2ceda8d 100644
--- a/tap.c
+++ b/tap.c
@@ -191,7 +191,7 @@ void tap_udp4_send(const struct ctx *c, struct in_addr src, in_port_t sport,
 	memcpy(data, in, len);
 
 	if (tap_send(c, buf, len + (data - buf)) < 0)
-		debug("tap: failed to send %lu bytes (IPv4)", len);
+		debug("tap: failed to send %zu bytes (IPv4)", len);
 }
 
 /**
@@ -214,7 +214,7 @@ void tap_icmp4_send(const struct ctx *c, struct in_addr src, struct in_addr dst,
 	csum_icmp4(icmp4h, icmp4h + 1, len - sizeof(*icmp4h));
 
 	if (tap_send(c, buf, len + (data - buf)) < 0)
-		debug("tap: failed to send %lu bytes (IPv4)", len);
+		debug("tap: failed to send %zu bytes (IPv4)", len);
 }
 
 /**
@@ -278,7 +278,7 @@ void tap_udp6_send(const struct ctx *c,
 	memcpy(data, in, len);
 
 	if (tap_send(c, buf, len + (data - buf)) < 1)
-		debug("tap: failed to send %lu bytes (IPv6)", len);
+		debug("tap: failed to send %zu bytes (IPv6)", len);
 }
 
 /**
@@ -302,7 +302,7 @@ void tap_icmp6_send(const struct ctx *c,
 	csum_icmp6(icmp6h, src, dst, icmp6h + 1, len - sizeof(*icmp6h));
 
 	if (tap_send(c, buf, len + (data - buf)) < 1)
-		debug("tap: failed to send %lu bytes (IPv6)", len);
+		debug("tap: failed to send %zu bytes (IPv6)", len);
 }
 
 /**
@@ -364,7 +364,7 @@ static void tap_send_remainder(const struct ctx *c, const struct iovec *iov,
 		ssize_t sent = send(c->fd_tap, base + offset, len - offset,
 				    MSG_NOSIGNAL);
 		if (sent < 0) {
-			err("tap: partial frame send (missing %lu bytes): %s",
+			err("tap: partial frame send (missing %zu bytes): %s",
 			    len - offset, strerror(errno));
 			return;
 		}
@@ -433,7 +433,7 @@ size_t tap_send_frames(const struct ctx *c, const struct iovec *iov, size_t n)
 		m = tap_send_frames_pasta(c, iov, n);
 
 	if (m < n)
-		debug("tap: failed to send %lu frames of %lu", n - m, n);
+		debug("tap: failed to send %zu frames of %zu", n - m, n);
 
 	pcap_multiple(iov, m, c->mode == MODE_PASST ? sizeof(uint32_t) : 0);
 
diff --git a/tcp.c b/tcp.c
index 40e3dec..44468ca 100644
--- a/tcp.c
+++ b/tcp.c
@@ -2570,7 +2570,8 @@ int tcp_tap_handler(struct ctx *c, uint8_t pif, int af,
 		return 1;
 	}
 
-	trace("TCP: packet length %lu from tap for index %lu", len, CONN_IDX(conn));
+	trace("TCP: packet length %zu from tap for index %lu",
+	      len, CONN_IDX(conn));
 
 	if (th->rst) {
 		conn_event(c, conn, CLOSED);
diff --git a/tcp_splice.c b/tcp_splice.c
index a5c1332..0a23584 100644
--- a/tcp_splice.c
+++ b/tcp_splice.c
@@ -321,7 +321,7 @@ static int tcp_splice_connect_finish(const struct ctx *c,
 
 			if (fcntl(conn->pipe[side][0], F_SETPIPE_SZ,
 				  c->tcp.pipe_size)) {
-				trace("TCP (spliced): cannot set %d->%d pipe size to %lu",
+				trace("TCP (spliced): cannot set %d->%d pipe size to %zu",
 				      side, !side, c->tcp.pipe_size);
 			}
 		}
@@ -554,7 +554,7 @@ retry:
 		readlen = splice(conn->s[fromside], NULL,
 				 conn->pipe[fromside][1], NULL, c->tcp.pipe_size,
 				 SPLICE_F_MOVE | SPLICE_F_NONBLOCK);
-		trace("TCP (spliced): %li from read-side call", readlen);
+		trace("TCP (spliced): %zi from read-side call", readlen);
 		if (readlen < 0) {
 			if (errno == EINTR)
 				goto retry;
@@ -580,7 +580,7 @@ eintr:
 		written = splice(conn->pipe[fromside][0], NULL,
 				 conn->s[!fromside], NULL, to_write,
 				 SPLICE_F_MOVE | more | SPLICE_F_NONBLOCK);
-		trace("TCP (spliced): %li from write-side call (passed %lu)",
+		trace("TCP (spliced): %zi from write-side call (passed %zi)",
 		      written, to_write);
 
 		/* Most common case: skip updating counters. */
@@ -718,7 +718,7 @@ static void tcp_splice_pipe_refill(const struct ctx *c)
 
 		if (fcntl(splice_pipe_pool[i][0], F_SETPIPE_SZ,
 			  c->tcp.pipe_size)) {
-			trace("TCP (spliced): cannot set pool pipe size to %lu",
+			trace("TCP (spliced): cannot set pool pipe size to %zu",
 			      c->tcp.pipe_size);
 		}
 	}
-- 
@@ -321,7 +321,7 @@ static int tcp_splice_connect_finish(const struct ctx *c,
 
 			if (fcntl(conn->pipe[side][0], F_SETPIPE_SZ,
 				  c->tcp.pipe_size)) {
-				trace("TCP (spliced): cannot set %d->%d pipe size to %lu",
+				trace("TCP (spliced): cannot set %d->%d pipe size to %zu",
 				      side, !side, c->tcp.pipe_size);
 			}
 		}
@@ -554,7 +554,7 @@ retry:
 		readlen = splice(conn->s[fromside], NULL,
 				 conn->pipe[fromside][1], NULL, c->tcp.pipe_size,
 				 SPLICE_F_MOVE | SPLICE_F_NONBLOCK);
-		trace("TCP (spliced): %li from read-side call", readlen);
+		trace("TCP (spliced): %zi from read-side call", readlen);
 		if (readlen < 0) {
 			if (errno == EINTR)
 				goto retry;
@@ -580,7 +580,7 @@ eintr:
 		written = splice(conn->pipe[fromside][0], NULL,
 				 conn->s[!fromside], NULL, to_write,
 				 SPLICE_F_MOVE | more | SPLICE_F_NONBLOCK);
-		trace("TCP (spliced): %li from write-side call (passed %lu)",
+		trace("TCP (spliced): %zi from write-side call (passed %zi)",
 		      written, to_write);
 
 		/* Most common case: skip updating counters. */
@@ -718,7 +718,7 @@ static void tcp_splice_pipe_refill(const struct ctx *c)
 
 		if (fcntl(splice_pipe_pool[i][0], F_SETPIPE_SZ,
 			  c->tcp.pipe_size)) {
-			trace("TCP (spliced): cannot set pool pipe size to %lu",
+			trace("TCP (spliced): cannot set pool pipe size to %zu",
 			      c->tcp.pipe_size);
 		}
 	}
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/3] packet: Offset plus length is not always uint32_t, but it's always size_t
  2023-11-30 10:07 [PATCH v2 0/3] Fix some build warnings and errors for 32-bit and musl Stefano Brivio
  2023-11-30 10:07 ` [PATCH v2 1/3] treewide: Use 'z' length modifier for size_t/ssize_t conversions Stefano Brivio
@ 2023-11-30 10:07 ` Stefano Brivio
  2023-12-01  0:02   ` David Gibson
  2023-11-30 10:07 ` [PATCH v2 3/3] port_fwd, util: Include additional headers to fix build with musl Stefano Brivio
  2 siblings, 1 reply; 6+ messages in thread
From: Stefano Brivio @ 2023-11-30 10:07 UTC (permalink / raw)
  To: passt-dev; +Cc: David Gibson, lemmi

According to gcc, PRIu32 matches the type of the argument we're
printing here on both 64 and 32-bits architectures. According to
Clang, though, that's not the case, as the result of the sum is an
unsigned long on 64-bit.

Use the z modifier, given that we're summing uint32_t to size_t, and
the result is at most promoted to size_t.

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
---
 packet.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packet.c b/packet.c
index 12ac76b..ccfc846 100644
--- a/packet.c
+++ b/packet.c
@@ -106,7 +106,7 @@ void *packet_get_do(const struct pool *p, size_t idx, size_t offset,
 
 	if (p->pkt[idx].offset + len + offset > p->buf_size) {
 		if (func) {
-			trace("packet offset plus length %lu from size %zu, "
+			trace("packet offset plus length %zu from size %zu, "
 			      "%s:%i", p->pkt[idx].offset + len + offset,
 			      p->buf_size, func, line);
 		}
-- 
@@ -106,7 +106,7 @@ void *packet_get_do(const struct pool *p, size_t idx, size_t offset,
 
 	if (p->pkt[idx].offset + len + offset > p->buf_size) {
 		if (func) {
-			trace("packet offset plus length %lu from size %zu, "
+			trace("packet offset plus length %zu from size %zu, "
 			      "%s:%i", p->pkt[idx].offset + len + offset,
 			      p->buf_size, func, line);
 		}
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 3/3] port_fwd, util: Include additional headers to fix build with musl
  2023-11-30 10:07 [PATCH v2 0/3] Fix some build warnings and errors for 32-bit and musl Stefano Brivio
  2023-11-30 10:07 ` [PATCH v2 1/3] treewide: Use 'z' length modifier for size_t/ssize_t conversions Stefano Brivio
  2023-11-30 10:07 ` [PATCH v2 2/3] packet: Offset plus length is not always uint32_t, but it's always size_t Stefano Brivio
@ 2023-11-30 10:07 ` Stefano Brivio
  2 siblings, 0 replies; 6+ messages in thread
From: Stefano Brivio @ 2023-11-30 10:07 UTC (permalink / raw)
  To: passt-dev; +Cc: David Gibson, lemmi

lseek() is declared in unistd.h, and stdio.h provides sscanf().
Include these two headers in port_fwd.c.

SIGCHLD, even if used exclusively for clone(), is defined in
signal.h: add the include to util.h, as NS_CALL needs it.

Reported-by: lemmi <lemmi@nerd2nerd.org>
Link: https://github.com/void-linux/void-packages/actions/runs/6999782606/job/19039526604#step:7:57
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
---
 port_fwd.c | 2 ++
 util.h     | 1 +
 2 files changed, 3 insertions(+)

diff --git a/port_fwd.c b/port_fwd.c
index 7943a30..6f6c836 100644
--- a/port_fwd.c
+++ b/port_fwd.c
@@ -17,6 +17,8 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <sched.h>
+#include <unistd.h>
+#include <stdio.h>
 
 #include "util.h"
 #include "port_fwd.h"
diff --git a/util.h b/util.h
index 1f02588..86f1a7e 100644
--- a/util.h
+++ b/util.h
@@ -10,6 +10,7 @@
 #include <stdarg.h>
 #include <stdbool.h>
 #include <string.h>
+#include <signal.h>
 
 #include "log.h"
 
-- 
@@ -10,6 +10,7 @@
 #include <stdarg.h>
 #include <stdbool.h>
 #include <string.h>
+#include <signal.h>
 
 #include "log.h"
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 1/3] treewide: Use 'z' length modifier for size_t/ssize_t conversions
  2023-11-30 10:07 ` [PATCH v2 1/3] treewide: Use 'z' length modifier for size_t/ssize_t conversions Stefano Brivio
@ 2023-12-01  0:01   ` David Gibson
  0 siblings, 0 replies; 6+ messages in thread
From: David Gibson @ 2023-12-01  0:01 UTC (permalink / raw)
  To: Stefano Brivio; +Cc: passt-dev, lemmi

[-- Attachment #1: Type: text/plain, Size: 8631 bytes --]

On Thu, Nov 30, 2023 at 11:07:24AM +0100, Stefano Brivio wrote:
> Types size_t and ssize_t are not necessarily long, it depends on the
> architecture.
> 
> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>

Reviewed-by: David Gibson <david@gibson.dropbear.id.au>

> ---
>  netlink.c    |  2 +-
>  packet.c     | 14 +++++++-------
>  pcap.c       |  4 ++--
>  tap.c        | 12 ++++++------
>  tcp.c        |  3 ++-
>  tcp_splice.c |  8 ++++----
>  6 files changed, 22 insertions(+), 21 deletions(-)
> 
> diff --git a/netlink.c b/netlink.c
> index 6cc04a0..379d46e 100644
> --- a/netlink.c
> +++ b/netlink.c
> @@ -130,7 +130,7 @@ static uint32_t nl_send(int s, void *req, uint16_t type,
>  	if (n < 0)
>  		die("netlink: Failed to send(): %s", strerror(errno));
>  	else if (n < len)
> -		die("netlink: Short send (%lu of %lu bytes)", n, len);
> +		die("netlink: Short send (%zd of %zd bytes)", n, len);
>  
>  	return nh->nlmsg_seq;
>  }
> diff --git a/packet.c b/packet.c
> index 9589824..12ac76b 100644
> --- a/packet.c
> +++ b/packet.c
> @@ -36,7 +36,7 @@ void packet_add_do(struct pool *p, size_t len, const char *start,
>  	size_t idx = p->count;
>  
>  	if (idx >= p->size) {
> -		trace("add packet index %lu to pool with size %lu, %s:%i",
> +		trace("add packet index %zu to pool with size %zu, %s:%i",
>  		      idx, p->size, func, line);
>  		return;
>  	}
> @@ -48,14 +48,14 @@ void packet_add_do(struct pool *p, size_t len, const char *start,
>  	}
>  
>  	if (start + len > p->buf + p->buf_size) {
> -		trace("add packet start %p, length: %lu, buffer end %p, %s:%i",
> +		trace("add packet start %p, length: %zu, buffer end %p, %s:%i",
>  		      (void *)start, len, (void *)(p->buf + p->buf_size),
>  		      func, line);
>  		return;
>  	}
>  
>  	if (len > UINT16_MAX) {
> -		trace("add packet length %lu, %s:%i", len, func, line);
> +		trace("add packet length %zu, %s:%i", len, func, line);
>  		return;
>  	}
>  
> @@ -90,7 +90,7 @@ void *packet_get_do(const struct pool *p, size_t idx, size_t offset,
>  {
>  	if (idx >= p->size || idx >= p->count) {
>  		if (func) {
> -			trace("packet %lu from pool size: %lu, count: %lu, "
> +			trace("packet %zu from pool size: %zu, count: %zu, "
>  			      "%s:%i", idx, p->size, p->count, func, line);
>  		}
>  		return NULL;
> @@ -98,7 +98,7 @@ void *packet_get_do(const struct pool *p, size_t idx, size_t offset,
>  
>  	if (len > UINT16_MAX || len + offset > UINT32_MAX) {
>  		if (func) {
> -			trace("packet data length %lu, offset %lu, %s:%i",
> +			trace("packet data length %zu, offset %zu, %s:%i",
>  			      len, offset, func, line);
>  		}
>  		return NULL;
> @@ -106,7 +106,7 @@ void *packet_get_do(const struct pool *p, size_t idx, size_t offset,
>  
>  	if (p->pkt[idx].offset + len + offset > p->buf_size) {
>  		if (func) {
> -			trace("packet offset plus length %lu from size %lu, "
> +			trace("packet offset plus length %lu from size %zu, "
>  			      "%s:%i", p->pkt[idx].offset + len + offset,
>  			      p->buf_size, func, line);
>  		}
> @@ -115,7 +115,7 @@ void *packet_get_do(const struct pool *p, size_t idx, size_t offset,
>  
>  	if (len + offset > p->pkt[idx].len) {
>  		if (func) {
> -			trace("data length %lu, offset %lu from length %u, "
> +			trace("data length %zu, offset %zu from length %u, "
>  			      "%s:%i", len, offset, p->pkt[idx].len,
>  			      func, line);
>  		}
> diff --git a/pcap.c b/pcap.c
> index 524612a..501d52d 100644
> --- a/pcap.c
> +++ b/pcap.c
> @@ -101,7 +101,7 @@ void pcap(const char *pkt, size_t len)
>  
>  	gettimeofday(&tv, NULL);
>  	if (pcap_frame(pkt, len, &tv) != 0)
> -		debug("Cannot log packet, length %lu", len);
> +		debug("Cannot log packet, length %zu", len);
>  }
>  
>  /**
> @@ -123,7 +123,7 @@ void pcap_multiple(const struct iovec *iov, unsigned int n, size_t offset)
>  	for (i = 0; i < n; i++) {
>  		if (pcap_frame((char *)iov[i].iov_base + offset,
>  			       iov[i].iov_len - offset, &tv) != 0) {
> -			debug("Cannot log packet, length %lu",
> +			debug("Cannot log packet, length %zu",
>  			      iov->iov_len - offset);
>  			return;
>  		}
> diff --git a/tap.c b/tap.c
> index 4f11000..2ceda8d 100644
> --- a/tap.c
> +++ b/tap.c
> @@ -191,7 +191,7 @@ void tap_udp4_send(const struct ctx *c, struct in_addr src, in_port_t sport,
>  	memcpy(data, in, len);
>  
>  	if (tap_send(c, buf, len + (data - buf)) < 0)
> -		debug("tap: failed to send %lu bytes (IPv4)", len);
> +		debug("tap: failed to send %zu bytes (IPv4)", len);
>  }
>  
>  /**
> @@ -214,7 +214,7 @@ void tap_icmp4_send(const struct ctx *c, struct in_addr src, struct in_addr dst,
>  	csum_icmp4(icmp4h, icmp4h + 1, len - sizeof(*icmp4h));
>  
>  	if (tap_send(c, buf, len + (data - buf)) < 0)
> -		debug("tap: failed to send %lu bytes (IPv4)", len);
> +		debug("tap: failed to send %zu bytes (IPv4)", len);
>  }
>  
>  /**
> @@ -278,7 +278,7 @@ void tap_udp6_send(const struct ctx *c,
>  	memcpy(data, in, len);
>  
>  	if (tap_send(c, buf, len + (data - buf)) < 1)
> -		debug("tap: failed to send %lu bytes (IPv6)", len);
> +		debug("tap: failed to send %zu bytes (IPv6)", len);
>  }
>  
>  /**
> @@ -302,7 +302,7 @@ void tap_icmp6_send(const struct ctx *c,
>  	csum_icmp6(icmp6h, src, dst, icmp6h + 1, len - sizeof(*icmp6h));
>  
>  	if (tap_send(c, buf, len + (data - buf)) < 1)
> -		debug("tap: failed to send %lu bytes (IPv6)", len);
> +		debug("tap: failed to send %zu bytes (IPv6)", len);
>  }
>  
>  /**
> @@ -364,7 +364,7 @@ static void tap_send_remainder(const struct ctx *c, const struct iovec *iov,
>  		ssize_t sent = send(c->fd_tap, base + offset, len - offset,
>  				    MSG_NOSIGNAL);
>  		if (sent < 0) {
> -			err("tap: partial frame send (missing %lu bytes): %s",
> +			err("tap: partial frame send (missing %zu bytes): %s",
>  			    len - offset, strerror(errno));
>  			return;
>  		}
> @@ -433,7 +433,7 @@ size_t tap_send_frames(const struct ctx *c, const struct iovec *iov, size_t n)
>  		m = tap_send_frames_pasta(c, iov, n);
>  
>  	if (m < n)
> -		debug("tap: failed to send %lu frames of %lu", n - m, n);
> +		debug("tap: failed to send %zu frames of %zu", n - m, n);
>  
>  	pcap_multiple(iov, m, c->mode == MODE_PASST ? sizeof(uint32_t) : 0);
>  
> diff --git a/tcp.c b/tcp.c
> index 40e3dec..44468ca 100644
> --- a/tcp.c
> +++ b/tcp.c
> @@ -2570,7 +2570,8 @@ int tcp_tap_handler(struct ctx *c, uint8_t pif, int af,
>  		return 1;
>  	}
>  
> -	trace("TCP: packet length %lu from tap for index %lu", len, CONN_IDX(conn));
> +	trace("TCP: packet length %zu from tap for index %lu",
> +	      len, CONN_IDX(conn));
>  
>  	if (th->rst) {
>  		conn_event(c, conn, CLOSED);
> diff --git a/tcp_splice.c b/tcp_splice.c
> index a5c1332..0a23584 100644
> --- a/tcp_splice.c
> +++ b/tcp_splice.c
> @@ -321,7 +321,7 @@ static int tcp_splice_connect_finish(const struct ctx *c,
>  
>  			if (fcntl(conn->pipe[side][0], F_SETPIPE_SZ,
>  				  c->tcp.pipe_size)) {
> -				trace("TCP (spliced): cannot set %d->%d pipe size to %lu",
> +				trace("TCP (spliced): cannot set %d->%d pipe size to %zu",
>  				      side, !side, c->tcp.pipe_size);
>  			}
>  		}
> @@ -554,7 +554,7 @@ retry:
>  		readlen = splice(conn->s[fromside], NULL,
>  				 conn->pipe[fromside][1], NULL, c->tcp.pipe_size,
>  				 SPLICE_F_MOVE | SPLICE_F_NONBLOCK);
> -		trace("TCP (spliced): %li from read-side call", readlen);
> +		trace("TCP (spliced): %zi from read-side call", readlen);
>  		if (readlen < 0) {
>  			if (errno == EINTR)
>  				goto retry;
> @@ -580,7 +580,7 @@ eintr:
>  		written = splice(conn->pipe[fromside][0], NULL,
>  				 conn->s[!fromside], NULL, to_write,
>  				 SPLICE_F_MOVE | more | SPLICE_F_NONBLOCK);
> -		trace("TCP (spliced): %li from write-side call (passed %lu)",
> +		trace("TCP (spliced): %zi from write-side call (passed %zi)",
>  		      written, to_write);
>  
>  		/* Most common case: skip updating counters. */
> @@ -718,7 +718,7 @@ static void tcp_splice_pipe_refill(const struct ctx *c)
>  
>  		if (fcntl(splice_pipe_pool[i][0], F_SETPIPE_SZ,
>  			  c->tcp.pipe_size)) {
> -			trace("TCP (spliced): cannot set pool pipe size to %lu",
> +			trace("TCP (spliced): cannot set pool pipe size to %zu",
>  			      c->tcp.pipe_size);
>  		}
>  	}

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/3] packet: Offset plus length is not always uint32_t, but it's always size_t
  2023-11-30 10:07 ` [PATCH v2 2/3] packet: Offset plus length is not always uint32_t, but it's always size_t Stefano Brivio
@ 2023-12-01  0:02   ` David Gibson
  0 siblings, 0 replies; 6+ messages in thread
From: David Gibson @ 2023-12-01  0:02 UTC (permalink / raw)
  To: Stefano Brivio; +Cc: passt-dev, lemmi

[-- Attachment #1: Type: text/plain, Size: 1321 bytes --]

On Thu, Nov 30, 2023 at 11:07:25AM +0100, Stefano Brivio wrote:
> According to gcc, PRIu32 matches the type of the argument we're
> printing here on both 64 and 32-bits architectures. According to
> Clang, though, that's not the case, as the result of the sum is an
> unsigned long on 64-bit.
> 
> Use the z modifier, given that we're summing uint32_t to size_t, and
> the result is at most promoted to size_t.
> 
> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>

Reviewed-by: David Gibson <david@gibson.dropbear.id.au>

> ---
>  packet.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/packet.c b/packet.c
> index 12ac76b..ccfc846 100644
> --- a/packet.c
> +++ b/packet.c
> @@ -106,7 +106,7 @@ void *packet_get_do(const struct pool *p, size_t idx, size_t offset,
>  
>  	if (p->pkt[idx].offset + len + offset > p->buf_size) {
>  		if (func) {
> -			trace("packet offset plus length %lu from size %zu, "
> +			trace("packet offset plus length %zu from size %zu, "
>  			      "%s:%i", p->pkt[idx].offset + len + offset,
>  			      p->buf_size, func, line);
>  		}

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-12-01  0:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-30 10:07 [PATCH v2 0/3] Fix some build warnings and errors for 32-bit and musl Stefano Brivio
2023-11-30 10:07 ` [PATCH v2 1/3] treewide: Use 'z' length modifier for size_t/ssize_t conversions Stefano Brivio
2023-12-01  0:01   ` David Gibson
2023-11-30 10:07 ` [PATCH v2 2/3] packet: Offset plus length is not always uint32_t, but it's always size_t Stefano Brivio
2023-12-01  0:02   ` David Gibson
2023-11-30 10:07 ` [PATCH v2 3/3] port_fwd, util: Include additional headers to fix build with musl Stefano Brivio

Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

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 IMAP folder(s).