Fix sign-compare warnings in pg_iovec.h.

The code in question (pg_preadv() and pg_pwritev()) has been around
for a while, but commit 15c9ac3629 moved it to a header file.  If
third-party code that includes this header file is built with
-Wsign-compare on a system without preadv() or pwritev(), warnings
ensue.  This commit fixes said warnings by casting the result of
pg_pread()/pg_pwrite() to size_t, which should be safe because we
will have already checked for a negative value.

Author: Wolfgang Walther
Discussion: https://postgr.es/m/16989737-1aa8-48fd-8dfe-b7ada06509ab%40technowledgy.de
Backpatch-through: 17
This commit is contained in:
Nathan Bossart 2024-11-08 16:11:08 -06:00
parent caca6d8d27
commit 0fa6884065

View File

@ -68,7 +68,7 @@ pg_preadv(int fd, const struct iovec *iov, int iovcnt, off_t offset)
} }
sum += part; sum += part;
offset += part; offset += part;
if (part < iov[i].iov_len) if ((size_t) part < iov[i].iov_len)
return sum; return sum;
} }
return sum; return sum;
@ -107,7 +107,7 @@ pg_pwritev(int fd, const struct iovec *iov, int iovcnt, off_t offset)
} }
sum += part; sum += part;
offset += part; offset += part;
if (part < iov[i].iov_len) if ((size_t) part < iov[i].iov_len)
return sum; return sum;
} }
return sum; return sum;