diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2024-08-06 11:21:49 +1000 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2024-08-06 15:01:46 +0200 |
commit | 031df332e98d507ad153fc54ea8c4b7109b7dabf (patch) | |
tree | eaf18767ee306fc7ccea9ea715a852aeaed5d9cd | |
parent | e877f905e5fc5900c2c8dd9378e39705b21aec82 (diff) | |
download | passt-031df332e98d507ad153fc54ea8c4b7109b7dabf.tar passt-031df332e98d507ad153fc54ea8c4b7109b7dabf.tar.gz passt-031df332e98d507ad153fc54ea8c4b7109b7dabf.tar.bz2 passt-031df332e98d507ad153fc54ea8c4b7109b7dabf.tar.lz passt-031df332e98d507ad153fc54ea8c4b7109b7dabf.tar.xz passt-031df332e98d507ad153fc54ea8c4b7109b7dabf.tar.zst passt-031df332e98d507ad153fc54ea8c4b7109b7dabf.zip |
util: Use unsigned (size_t) value for iov length
The "correct" type for the length of an IOV is unclear: writev() and
readv() use an int, but sendmsg() and recvmsg() use a size_t. Using the
unsigned size_t has some advantages, though, and it makes more sense for
the case of write_remainder. Using size_t throughout here means we don't
have a signed vs. unsigned comparison, and we don't have to deal with
the case of iov_skip_bytes() returning a value which becomes negative
when assigned to an integer.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
-rw-r--r-- | util.c | 5 | ||||
-rw-r--r-- | util.h | 2 |
2 files changed, 3 insertions, 4 deletions
@@ -592,10 +592,9 @@ int do_clone(int (*fn)(void *), char *stack_area, size_t stack_size, int flags, * * #syscalls write writev */ -int write_remainder(int fd, const struct iovec *iov, int iovcnt, size_t skip) +int write_remainder(int fd, const struct iovec *iov, size_t iovcnt, size_t skip) { - int i; - size_t offset; + size_t offset, i; while ((i = iov_skip_bytes(iov, iovcnt, skip, &offset)) < iovcnt) { ssize_t rc; @@ -182,7 +182,7 @@ void pidfile_write(int fd, pid_t pid); int __daemon(int pidfile_fd, int devnull_fd); int fls(unsigned long x); int write_file(const char *path, const char *buf); -int write_remainder(int fd, const struct iovec *iov, int iovcnt, size_t skip); +int write_remainder(int fd, const struct iovec *iov, size_t iovcnt, size_t skip); /** * af_name() - Return name of an address family |