Fix various sign-compare warnings due to write return value
Some checks failed
Build / Check code style with clang-format (push) Has been cancelled
Build / Android - arm64-v8a (push) Has been cancelled
Build / gcc-mingw - x64 - Debug - OSSL (push) Has been cancelled
Build / gcc-mingw - x64 - Release - OSSL (push) Has been cancelled
Build / gcc-mingw - x86 - Debug - OSSL (push) Has been cancelled
Build / gcc-mingw - x86 - Release - OSSL (push) Has been cancelled
Build / gcc - ubuntu-24.04 - OpenSSL 3.0.13 --enable-pkcs11 (push) Has been cancelled
Build / gcc - ubuntu-22.04 - OpenSSL 3.0.2 --enable-pkcs11 (push) Has been cancelled
Build / clang-asan - ubuntu-22.04 - openssl (push) Has been cancelled
Build / clang-asan - ubuntu-24.04 - openssl (push) Has been cancelled
Build / macos-14 - libressl - asan (push) Has been cancelled
Build / macos-14 - openssl@3 - asan (push) Has been cancelled
Build / macos-15 - libressl - asan (push) Has been cancelled
Build / macos-15 - openssl@3 - asan (push) Has been cancelled
Build / macos-26 - libressl - asan (push) Has been cancelled
Build / macos-26 - openssl@3 - asan (push) Has been cancelled
Build / macos-14 - libressl - normal (push) Has been cancelled
Build / macos-14 - openssl@3 - normal (push) Has been cancelled
Build / macos-15 - libressl - normal (push) Has been cancelled
Build / macos-15 - openssl@3 - normal (push) Has been cancelled
Build / macos-26 - libressl - normal (push) Has been cancelled
Build / macos-26 - openssl@3 - normal (push) Has been cancelled
Build / msbuild - amd64 - openssl (push) Has been cancelled
Build / msbuild - amd64-clang - openssl (push) Has been cancelled
Build / msbuild - arm64 - openssl (push) Has been cancelled
Build / msbuild - x86 - openssl (push) Has been cancelled
Build / msbuild - x86-clang - openssl (push) Has been cancelled
Build / clang asan - ubuntu-24.04 - libressl (push) Has been cancelled
Build / gcc normal - ubuntu-24.04 - libressl (push) Has been cancelled
Build / clang asan - ubuntu-24.04 - mbedtls4 (push) Has been cancelled
Build / gcc normal - ubuntu-24.04 - mbedtls4 (push) Has been cancelled
Build / clang asan - ubuntu-24.04 - awslc (push) Has been cancelled
Build / gcc normal - ubuntu-24.04 - awslc (push) Has been cancelled
Deploy Doxygen documentation to Pages / build (push) Has been cancelled
Build / mingw unittest argv - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest auth_token - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest buffer - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest crypto - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest cryptoapi - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest misc - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest ncp - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest openvpnserv - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest options_parse - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest packet_id - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest pkt - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest provider - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest ssl - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest tls_crypt - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest user_pass - x64 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest argv - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest auth_token - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest buffer - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest crypto - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest cryptoapi - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest misc - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest ncp - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest openvpnserv - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest options_parse - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest packet_id - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest pkt - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest provider - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest ssl - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest tls_crypt - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest user_pass - x64 - Release - OSSL (push) Has been cancelled
Build / mingw unittest argv - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest auth_token - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest buffer - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest crypto - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest cryptoapi - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest misc - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest ncp - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest openvpnserv - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest options_parse - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest packet_id - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest pkt - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest provider - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest ssl - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest tls_crypt - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest user_pass - x86 - Debug - OSSL (push) Has been cancelled
Build / mingw unittest argv - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest auth_token - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest buffer - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest crypto - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest cryptoapi - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest misc - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest ncp - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest openvpnserv - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest options_parse - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest packet_id - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest pkt - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest provider - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest ssl - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest tls_crypt - x86 - Release - OSSL (push) Has been cancelled
Build / mingw unittest user_pass - x86 - Release - OSSL (push) Has been cancelled
Deploy Doxygen documentation to Pages / deploy (push) Has been cancelled

write takes size_t as count (unsigned int on
Windows) and returns ssize_t (int on Windows).
But we often want to compare the return value
to the count.

Generally we can just rely on the fact that
sizeof(ssize_t) == sizeof(size_t) and use that
for all values. (Until we want to introduce
-Wsign-conversion that is...)

Change-Id: I3eb4581980f532cb2960b37a6fa43a7baee4b603
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1513
Message-Id: <20260306163337.2756-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg35963.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
Frank Lichtenheld 2026-03-06 17:33:31 +01:00 committed by Gert Doering
parent 5f7b1c548b
commit 0401eacfe2
3 changed files with 4 additions and 30 deletions

View file

@ -327,11 +327,6 @@ proxy_list_housekeeping(struct proxy_connection **list)
}
}
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wsign-compare"
#endif
/*
* Record IP/port of client in filesystem, so that server receiving
* the proxy can determine true client origin.
@ -357,7 +352,8 @@ journal_add(const char *journal_dir, struct proxy_connection *pc, struct proxy_c
int fd = platform_open(jfn, O_CREAT | O_TRUNC | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP);
if (fd != -1)
{
if (write(fd, f, strlen(f)) != strlen(f))
ssize_t write_len = strlen(f);
if (write(fd, f, write_len) != write_len)
{
msg(M_WARN, "PORT SHARE: writing to journal file (%s) failed", jfn);
}
@ -373,10 +369,6 @@ journal_add(const char *journal_dir, struct proxy_connection *pc, struct proxy_c
}
}
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic pop
#endif
/*
* Cleanup function, on proxy process exit.
*/

View file

@ -206,11 +206,6 @@ status_close(struct status_output *so)
return ret;
}
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wsign-compare"
#endif
#define STATUS_PRINTF_MAXLEN 512
void
@ -240,7 +235,7 @@ status_printf(struct status_output *so, const char *format, ...)
if (so->fd >= 0 && !so->errors)
{
strcat(buf, "\n");
size_t len = strlen(buf);
ssize_t len = strlen(buf);
if (len > 0)
{
if (write(so->fd, buf, (unsigned int)len) != len)
@ -258,10 +253,6 @@ status_printf(struct status_output *so, const char *format, ...)
}
}
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic pop
#endif
bool
status_read(struct status_output *so, struct buffer *buf)
{

View file

@ -184,15 +184,10 @@ recv_string(int fd, char *buffer, size_t len)
return -1;
}
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wsign-compare"
#endif
static ssize_t
send_string(int fd, const char *string)
{
const size_t len = strlen(string) + 1;
const ssize_t len = strlen(string) + 1;
const ssize_t size = write(fd, string, len);
if (size == len)
{
@ -204,10 +199,6 @@ send_string(int fd, const char *string)
}
}
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic pop
#endif
#ifdef DO_DAEMONIZE
/*