From: Frank Lichtenheld Date: Tue, 23 Sep 2025 14:08:48 +0000 (+0200) Subject: Enable a subset of -Wextra X-Git-Tag: v2.7_beta2~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=45eb7e1807060a927ff805b0d01fbb8cfbb772c8;p=thirdparty%2Fopenvpn.git Enable a subset of -Wextra - Includes fixes for - -Wimplicit-fallthrough=2 (=3 is default but requires replacing all fallthrough comments) - -Wmissing-field-initializers - -Wold-style-declaration - All other warnings that would need fixes are disabled for now. Change-Id: I9ce664d073a4e6a6d433e9e6f986a5086dae8aa1 Signed-off-by: Frank Lichtenheld Acked-by: Gert Doering Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1202 Message-Id: <20250923140854.21766-1-gert@greenie.muc.de> URL: https://sourceforge.net/p/openvpn/mailman/message/59237558/ Signed-off-by: Gert Doering --- diff --git a/CMakeLists.txt b/CMakeLists.txt index f027b0103..fdc01620b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -114,7 +114,14 @@ else () check_and_add_compiler_flag(-Wstrict-prototypes StrictPrototypes) check_and_add_compiler_flag(-Wold-style-definition OldStyleDefinition) # We are not ready for this - #add_compile_options(-Wconversion -Wno-sign-conversion -Wsign-compare) + #add_compile_options(-Wconversion -Wno-sign-conversion) + add_compile_options(-Wextra -Wno-sign-compare -Wno-type-limits -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) + # Not sure how to deal with GetProcAddress + add_compile_options(-Wno-cast-function-type) + endif () if (USE_WERROR) add_compile_options(-Werror) endif () diff --git a/configure.ac b/configure.ac index 0fc21ee52..c2feeea75 100644 --- a/configure.ac +++ b/configure.ac @@ -1398,6 +1398,13 @@ ACL_CHECK_ADD_COMPILE_FLAGS([-Wno-stringop-truncation]) ACL_CHECK_ADD_COMPILE_FLAGS([-Wstrict-prototypes]) ACL_CHECK_ADD_COMPILE_FLAGS([-Wold-style-definition]) ACL_CHECK_ADD_COMPILE_FLAGS([-Wall]) +ACL_CHECK_ADD_COMPILE_FLAGS([-Wextra -Wno-sign-compare -Wno-type-limits -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 + # Not sure how to deal with GetProcAddress + ACL_CHECK_ADD_COMPILE_FLAGS([-Wno-cast-function-type]) +fi if test "${enable_pedantic}" = "yes"; then enable_strict="yes" diff --git a/src/openvpn/misc.c b/src/openvpn/misc.c index e0b5da1b4..d3d316dcb 100644 --- a/src/openvpn/misc.c +++ b/src/openvpn/misc.c @@ -733,7 +733,7 @@ validate_peer_info_line(char *line) { return false; } - + /* Intentional [[fallthrough]]; */ case 2: /* after the '=', replace non-printable or shell meta with '_' */ if (!isprint(c) || isspace(c) || c == '$' || c == '(' || c == '`') diff --git a/src/openvpn/tun.c b/src/openvpn/tun.c index 9618301bc..c213c4b44 100644 --- a/src/openvpn/tun.c +++ b/src/openvpn/tun.c @@ -84,10 +84,10 @@ print_tun_backend_driver(enum tun_driver_type driver) #ifdef _WIN32 -const static GUID GUID_DEVCLASS_NET = { +static const GUID GUID_DEVCLASS_NET = { 0x4d36e972L, 0xe325, 0x11ce, { 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18 } }; -const static GUID GUID_DEVINTERFACE_NET = { +static const GUID GUID_DEVINTERFACE_NET = { 0xcac88484, 0x7515, 0x4c03, { 0x82, 0xe6, 0x71, 0xa8, 0x7a, 0xba, 0xc3, 0x61 } }; diff --git a/src/tapctl/tap.c b/src/tapctl/tap.c index b633e7764..973160205 100644 --- a/src/tapctl/tap.c +++ b/src/tapctl/tap.c @@ -40,11 +40,11 @@ #endif -const static GUID GUID_DEVCLASS_NET = { +static const GUID GUID_DEVCLASS_NET = { 0x4d36e972L, 0xe325, 0x11ce, { 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18 } }; -const static WCHAR szAdapterRegKeyPathTemplate[] = +static const WCHAR szAdapterRegKeyPathTemplate[] = L"SYSTEM\\CurrentControlSet\\Control\\Network\\%ls\\%ls\\Connection"; #define ADAPTER_REGKEY_PATH_MAX \ (_countof(L"SYSTEM\\CurrentControlSet\\Control\\Network\\") - 1 + 38 + _countof(L"\\") - 1 \ diff --git a/tests/unit_tests/openvpn/test_pkt.c b/tests/unit_tests/openvpn/test_pkt.c index b5211cdd6..1423d469c 100644 --- a/tests/unit_tests/openvpn/test_pkt.c +++ b/tests/unit_tests/openvpn/test_pkt.c @@ -164,7 +164,7 @@ struct tls_auth_standalone init_tas_auth(int key_direction) { struct tls_auth_standalone tas = { 0 }; - struct frame frame = { { .headroom = 200, .payload_size = 1400 }, 0 }; + struct frame frame = { .buf = { .headroom = 200, .payload_size = 1400 }, 0 }; tas.frame = frame; tas.tls_wrap.mode = TLS_WRAP_AUTH; @@ -591,7 +591,7 @@ test_generate_reset_packet_plain(void **ut_state) enum first_packet_verdict verdict; tas.tls_wrap.mode = TLS_WRAP_NONE; - struct frame frame = { { .headroom = 200, .payload_size = 1400 }, 0 }; + struct frame frame = { .buf = { .headroom = 200, .payload_size = 1400 }, 0 }; tas.frame = frame; tas.workbuf = alloc_buf(1600);