aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2023-02-16 01:36:17 +0100
committerStefano Brivio <sbrivio@redhat.com>2023-02-16 17:33:54 +0100
commit7564b58a7f27bd926b0ce76b4fda145dca2d15dd (patch)
tree41ea536c6517de6d663c502b6ccfbd1ca276a340
parent3d0de2c1d72757a7754532f788b53102420e987d (diff)
downloadpasst-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar
passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar.gz
passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar.bz2
passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar.lz
passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar.xz
passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar.zst
passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.zip
tap: Use single counter for iov elements in tap_send_frames_pasta()
David points out that using multiple counters to go over the iov array, namely 'i' and 'iov', makes mistakes easier. We can't just use 'iov', unless we reserve an element with zero iov_len at the end, which isn't really justified. Simply use 'i' to iterate over the array. Link: https://archives.passt.top/passt-dev/Y+mfenvLn3VJ7Dg5@yekko/ Signed-off-by: Stefano Brivio <sbrivio@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--tap.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/tap.c b/tap.c
index 02da84d..e4c5b5b 100644
--- a/tap.c
+++ b/tap.c
@@ -316,13 +316,13 @@ static void tap_send_frames_pasta(struct ctx *c,
{
size_t i;
- for (i = 0; i < n; i++, iov++) {
- if (write(c->fd_tap, (char *)iov->iov_base, iov->iov_len) < 0) {
+ for (i = 0; i < n; i++) {
+ if (write(c->fd_tap, (char *)iov[i].iov_base,
+ iov[i].iov_len) < 0) {
debug("tap write: %s", strerror(errno));
if (errno != EAGAIN && errno != EWOULDBLOCK)
tap_handler(c, c->fd_tap, EPOLLERR, NULL);
i--;
- iov--;
}
}
}