Hi Laurent, Thanks for getting back to me so quickly! On 2026-11-09 08:12, Laurent Vivier wrote:
In fact the assertion should be:
assert((size_t)cnt <= ARRAY_SIZE(iov_msg) - j);
Could you try to update it and move it after the "if (cnt < 0) die("Missing entries in iov_msg");"?
Sure I used ``` diff --git a/tcp_vu.c b/tcp_vu.c index 868a35b..cee9cf6 100644 --- a/tcp_vu.c +++ b/tcp_vu.c @@ -291,9 +291,9 @@ static ssize_t tcp_vu_sock_recv(const struct ctx *c, struct vu_virtq *vq, cnt = iov_tail_clone(&iov_msg[j], ARRAY_SIZE(iov_msg) - j, &data); - assert(cnt < ARRAY_SIZE(iov_msg) - j); if (cnt < 0) die("Missing entries in iov_msg"); + assert((size_t)cnt <= ARRAY_SIZE(iov_msg) - (size_t)j); j += cnt; } ``` on top of `2026_10_02.cba3570` (note the additional cast for j). I tried it again with my setup: 0 crashes, it just works (TM), large download all. Thank you so much! All the best, John