From: Nathan Bossart Date: Fri, 8 Nov 2024 22:11:08 +0000 (-0600) Subject: Fix sign-compare warnings in pg_iovec.h. X-Git-Tag: REL_18_BETA1~1514 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=0fa688406595091c4fb6d65f2d409366cc11394e;p=postgresql.git 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 --- diff --git a/src/include/port/pg_iovec.h b/src/include/port/pg_iovec.h index 7255c1bd911..e5fe677b371 100644 --- a/src/include/port/pg_iovec.h +++ b/src/include/port/pg_iovec.h @@ -68,7 +68,7 @@ pg_preadv(int fd, const struct iovec *iov, int iovcnt, off_t offset) } sum += part; offset += part; - if (part < iov[i].iov_len) + if ((size_t) part < iov[i].iov_len) return sum; } return sum; @@ -107,7 +107,7 @@ pg_pwritev(int fd, const struct iovec *iov, int iovcnt, off_t offset) } sum += part; offset += part; - if (part < iov[i].iov_len) + if ((size_t) part < iov[i].iov_len) return sum; } return sum;