From: Frank Lichtenheld Date: Tue, 11 Nov 2025 15:48:39 +0000 (+0100) Subject: Enable -Wtype-limits by default (via -Wextra) X-Git-Tag: v2.7_rc2~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d50583bf853b62c0362a45a9ea1b085516bdd4e;p=thirdparty%2Fopenvpn.git Enable -Wtype-limits by default (via -Wextra) Removes a few smaller instances: - Fix return type check for socket() on Windows/Unixy - Ignore a few instances related to WSAWaitForMultipleEvents. The compiler says the check is currently useless, but we follow the API documentation. Change-Id: Iaabddb6f81cd94863291b193aae9d384a8f9d871 Signed-off-by: Frank Lichtenheld Acked-by: Arne Schwabe Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1207 Message-Id: <20251111154846.31360-1-gert@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg34317.html Signed-off-by: Gert Doering --- diff --git a/CMakeLists.txt b/CMakeLists.txt index c9301e6bb..e812145a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -114,7 +114,7 @@ else () check_and_add_compiler_flag(-Wstrict-prototypes StrictPrototypes) check_and_add_compiler_flag(-Wold-style-definition OldStyleDefinition) add_compile_options(-Wconversion -Wno-sign-conversion) - add_compile_options(-Wextra -Wno-sign-compare -Wno-type-limits -Wno-unused-parameter) + add_compile_options(-Wextra -Wno-sign-compare -Wno-unused-parameter) # clang doesn't have the different levels but also doesn't include it in -Wextra check_and_add_compiler_flag(-Wimplicit-fallthrough=2 GCCImplicitFallthrough) if (WIN32) diff --git a/configure.ac b/configure.ac index 3117e1323..f6e4b6d78 100644 --- a/configure.ac +++ b/configure.ac @@ -1410,7 +1410,7 @@ ACL_CHECK_ADD_COMPILE_FLAGS([-Wstrict-prototypes]) ACL_CHECK_ADD_COMPILE_FLAGS([-Wold-style-definition]) ACL_CHECK_ADD_COMPILE_FLAGS([-Wconversion -Wno-sign-conversion]) ACL_CHECK_ADD_COMPILE_FLAGS([-Wall]) -ACL_CHECK_ADD_COMPILE_FLAGS([-Wextra -Wno-sign-compare -Wno-type-limits -Wno-unused-parameter]) +ACL_CHECK_ADD_COMPILE_FLAGS([-Wextra -Wno-sign-compare -Wno-unused-parameter]) # clang doesn't have the different levels but also doesn't include it in -Wextra ACL_CHECK_ADD_COMPILE_FLAGS([-Wimplicit-fallthrough=2]) if test "${WIN32}" = "yes"; then diff --git a/src/openvpn/event.c b/src/openvpn/event.c index ca84d19bd..ca2d0c16e 100644 --- a/src/openvpn/event.c +++ b/src/openvpn/event.c @@ -410,6 +410,13 @@ we_wait(struct event_set *es, const struct timeval *tv, struct event_set_return } #endif + /* WSA_WAIT_EVENT_0 == 0 but the API documentation is written in a way + that doesn't guarantee that. So we make useless checks. */ +#if defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wtype-limits" +#endif + /* * First poll our event list with 0 timeout */ @@ -474,6 +481,9 @@ we_wait(struct event_set *es, const struct timeval *tv, struct event_set_return return -1; } } +#if defined(__GNUC__) +#pragma GCC diagnostic pop +#endif } static struct event_set * diff --git a/src/openvpn/socket.c b/src/openvpn/socket.c index 8eac96dd0..f7317d132 100644 --- a/src/openvpn/socket.c +++ b/src/openvpn/socket.c @@ -577,7 +577,8 @@ create_socket_tcp(struct addrinfo *addrinfo) ASSERT(addrinfo); ASSERT(addrinfo->ai_socktype == SOCK_STREAM); - if ((sd = socket(addrinfo->ai_family, addrinfo->ai_socktype, addrinfo->ai_protocol)) < 0) + if ((sd = socket(addrinfo->ai_family, addrinfo->ai_socktype, addrinfo->ai_protocol)) + == SOCKET_UNDEFINED) { msg(M_ERR, "Cannot create TCP socket"); } @@ -608,7 +609,8 @@ create_socket_udp(struct addrinfo *addrinfo, const unsigned int flags) ASSERT(addrinfo); ASSERT(addrinfo->ai_socktype == SOCK_DGRAM); - if ((sd = socket(addrinfo->ai_family, addrinfo->ai_socktype, addrinfo->ai_protocol)) < 0) + if ((sd = socket(addrinfo->ai_family, addrinfo->ai_socktype, addrinfo->ai_protocol)) + == SOCKET_UNDEFINED) { msg(M_ERR, "UDP: Cannot create UDP/UDP6 socket"); }