]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Enable -Wconversion -Wno-sign-conversion by default
authorFrank Lichtenheld <frank@lichtenheld.com>
Wed, 24 Sep 2025 12:27:47 +0000 (14:27 +0200)
committerGert Doering <gert@greenie.muc.de>
Wed, 24 Sep 2025 12:36:10 +0000 (14:36 +0200)
Grand-father all known locations of existing errors,
so that -Werror builds still pass and we do not spam
build logs.

Still, this should give us a much better roadmap to
work on these issues one by one while still enabling
the warnings for a lot of code-paths.

In general I did go for least amount of pragmas, so
usually there is only one override per file, covering
ALL of the failures in that file. While this protects
a lot of code that doesn't need it, it also cut down
the amount of pragmas by a lot.

This does cover gcc builds including mingw and clang
builds. Does not cover MSVC.

Once the amount of issues has been suitable reduced
more warnings could be enabled.

Change-Id: Iad5b00c35a1f1993b1fa99e8b945ab17b230ef59
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1168
Message-Id: <20250924122755.14391-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg33181.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
69 files changed:
CMakeLists.txt
configure.ac
src/openvpn/comp-lz4.c
src/openvpn/console_builtin.c
src/openvpn/crypto.c
src/openvpn/crypto_epoch.c
src/openvpn/crypto_mbedtls.c
src/openvpn/crypto_openssl.c
src/openvpn/cryptoapi.c
src/openvpn/dco.c
src/openvpn/dco_freebsd.c
src/openvpn/dco_linux.c
src/openvpn/dco_win.c
src/openvpn/dhcp.c
src/openvpn/event.c
src/openvpn/forward.c
src/openvpn/gremlin.c
src/openvpn/httpdigest.c
src/openvpn/init.c
src/openvpn/interval.c
src/openvpn/lzo.c
src/openvpn/manage.c
src/openvpn/mbuf.c
src/openvpn/misc.c
src/openvpn/mroute.c
src/openvpn/mss.c
src/openvpn/mtcp.c
src/openvpn/mtu.c
src/openvpn/mudp.c
src/openvpn/multi.c
src/openvpn/networking_sitnl.c
src/openvpn/ntlm.c
src/openvpn/occ.c
src/openvpn/openssl_compat.h
src/openvpn/options.c
src/openvpn/options_util.c
src/openvpn/otime.c
src/openvpn/otime.h
src/openvpn/packet_id.c
src/openvpn/packet_id.h
src/openvpn/pkcs11.c
src/openvpn/pkcs11_openssl.c
src/openvpn/proxy.c
src/openvpn/ps.c
src/openvpn/push.c
src/openvpn/push_util.c
src/openvpn/reliable.c
src/openvpn/route.c
src/openvpn/schedule.c
src/openvpn/socket.c
src/openvpn/socks.c
src/openvpn/ssl.c
src/openvpn/ssl_mbedtls.c
src/openvpn/ssl_ncp.c
src/openvpn/ssl_openssl.c
src/openvpn/ssl_pkt.c
src/openvpn/ssl_util.c
src/openvpn/ssl_verify.c
src/openvpn/ssl_verify_mbedtls.c
src/openvpn/ssl_verify_openssl.c
src/openvpn/status.c
src/openvpn/tls_crypt.c
src/openvpn/tun.c
src/openvpn/vlan.c
src/openvpn/win32.c
src/openvpnserv/interactive.c
tests/unit_tests/openvpn/test_crypto.c
tests/unit_tests/openvpn/test_pkcs11.c
tests/unit_tests/openvpn/test_ssl.c

index fdc01620b3e730ab3a6e1d7353d6e169cf1b7774..3f6196f2d7be1276f0682c096de761c045e80d6f 100644 (file)
@@ -113,8 +113,7 @@ else ()
     check_and_add_compiler_flag(-Wno-stringop-truncation NoStringOpTruncation)
     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)
+    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)
index c2feeea752116f0dde1b1b60f87d94745f4f0854..8f3c01dab82dea02a9d2d2c6e6f4f1ac80468959 100644 (file)
@@ -1397,6 +1397,7 @@ AC_DEFUN([ACL_CHECK_ADD_COMPILE_FLAGS], [
 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([-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])
 # clang doesn't have the different levels but also doesn't include it in -Wextra
index 6736469248aae086188286fa90a100a40a7737b1..a78c664f0f54a99aca55ffc74ad6c65a13cf0bfa 100644 (file)
@@ -88,6 +88,11 @@ lz4v2_compress(struct buffer *buf, struct buffer work, struct compress_context *
     compv2_escape_data_ifneeded(buf);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static void
 do_lz4_decompress(size_t zlen_max, struct buffer *work, struct buffer *buf,
                   struct compress_context *compctx)
@@ -113,6 +118,10 @@ do_lz4_decompress(size_t zlen_max, struct buffer *work, struct buffer *buf,
     *buf = *work;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 static void
 lz4_decompress(struct buffer *buf, struct buffer work, struct compress_context *compctx,
                const struct frame *frame)
index b0228dd57d79a0b2b6cef1aefb32ba164299f417..71c00252dd41abd7448ce6135ba36fef6d2b7dc6 100644 (file)
 
 #include "win32.h"
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /**
  * Get input from a Windows console.
  *
@@ -134,6 +139,10 @@ get_console_input_win32(const char *prompt, const bool echo, char *input, const
     return false;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #endif /* _WIN32 */
 
 
@@ -264,6 +273,10 @@ get_console_input(const char *prompt, const bool echo, char *input, const int ca
     return ret;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
 
 /**
  * @copydoc query_user_exec()
@@ -296,3 +309,7 @@ query_user_exec_builtin(void)
 
     return ret;
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
index ec7da439c72966204fb495cd36992b7786a19865..6376c11ab342568e10f5355e5e968a0d94b09154 100644 (file)
@@ -186,6 +186,11 @@ err:
     return;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static void
 openvpn_encrypt_v1(struct buffer *buf, struct buffer work, struct crypto_options *opt)
 {
@@ -1532,6 +1537,10 @@ read_key_file(struct key2 *key2, const char *file, const unsigned int flags)
     gc_free(&gc);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 int
 write_key_file(const int nkeys, const char *filename)
 {
index b5cbc8db8e3d0ffbb743547b839947152f9fc01a..7026ff878144a76f43645465f7589e03abe62644 100644 (file)
@@ -72,6 +72,11 @@ ovpn_hkdf_expand(const uint8_t *secret, const uint8_t *info, int info_len, uint8
     hmac_ctx_free(hmac_ctx);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 bool
 ovpn_expand_label(const uint8_t *secret, size_t secret_len, const uint8_t *label, size_t label_len,
                   const uint8_t *context, size_t context_len, uint8_t *out, uint16_t out_len)
@@ -163,6 +168,10 @@ epoch_data_key_derive(struct key_parameters *key, const struct epoch_key *epoch_
     key->epoch = epoch_key->epoch;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 static void
 epoch_init_send_key_ctx(struct crypto_options *co)
 {
index 2bab312802faf49232c4deeda12b19e13e40b41d..076d4ee031326e1e86f9034538ee945c2aaec584 100644 (file)
@@ -230,6 +230,11 @@ show_available_engines(void)
            "available\n");
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 bool
 crypto_pem_encode(const char *name, struct buffer *dst, const struct buffer *src,
                   struct gc_arena *gc)
@@ -760,7 +765,6 @@ cipher_ctx_final_check_tag(mbedtls_cipher_context_t *ctx, uint8_t *dst, int *dst
     return 1;
 }
 
-
 /*
  *
  * Generic message digest information functions
@@ -1119,4 +1123,9 @@ ssl_tls1_PRF(const uint8_t *label, size_t label_len, const uint8_t *sec, size_t
     return true;
 }
 #endif /* HAVE_MBEDTLS_SSL_TLS_PRF && defined(MBEDTLS_SSL_TLS_PRF_TLS1) */
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #endif /* ENABLE_CRYPTO_MBEDTLS */
index 2d0265abf4a538d16688de323209eece5da9e955..7688addb06a02bb1b90978bd881d84b76a06aa35 100644 (file)
@@ -895,6 +895,10 @@ cipher_ctx_mode(const EVP_CIPHER_CTX *ctx)
     return EVP_CIPHER_CTX_mode(ctx);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
 
 bool
 cipher_ctx_mode_cbc(const cipher_ctx_t *ctx)
@@ -999,6 +1003,9 @@ cipher_ctx_final_check_tag(EVP_CIPHER_CTX *ctx, uint8_t *dst, int *dst_len, uint
     return cipher_ctx_final(ctx, dst, dst_len);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
 
 /*
  *
@@ -1214,12 +1221,21 @@ hmac_ctx_cleanup(HMAC_CTX *ctx)
     HMAC_CTX_reset(ctx);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 int
 hmac_ctx_size(HMAC_CTX *ctx)
 {
     return HMAC_size(ctx);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 hmac_ctx_reset(HMAC_CTX *ctx)
 {
@@ -1398,6 +1414,11 @@ ssl_tls1_PRF(const uint8_t *label, size_t label_len, const uint8_t *sec, size_t
     CRYPTO_tls1_prf(EVP_md5_sha1(), out1, olen, sec, slen, label, label_len, NULL, 0, NULL, 0);
 }
 #elif !defined(LIBRESSL_VERSION_NUMBER) && !defined(ENABLE_CRYPTO_WOLFSSL)
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 bool
 ssl_tls1_PRF(const uint8_t *seed, size_t seed_len, const uint8_t *secret, size_t secret_len,
              uint8_t *output, size_t output_len)
@@ -1443,6 +1464,11 @@ out:
     EVP_PKEY_CTX_free(pctx);
     return ret;
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #else  /* if defined(LIBRESSL_VERSION_NUMBER) */
 /* LibreSSL and wolfSSL do not expose a TLS 1.0/1.1 PRF via the same APIs as
  * OpenSSL does. As result they will only be able to support
index d91d9a1c25828feda80eb5aa4d09909b5aeae40f..bba6ed2aaffc637c84b7e4f6cecbe9e758046683 100644 (file)
@@ -62,7 +62,7 @@ SSL_CTX_use_CryptoAPI_certificate(SSL_CTX *ssl_ctx, const char *cert_prop)
     return 0;
 }
 
-#else  /* HAVE_XKEY_PROVIDER */
+#else /* HAVE_XKEY_PROVIDER */
 
 static XKEY_EXTERNAL_SIGN_fn xkey_cng_sign;
 
@@ -342,6 +342,11 @@ out:
     return rv;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /** Sign hash in tbs using EC key in cd and NCryptSignHash */
 static int
 xkey_cng_ec_sign(CAPI_DATA *cd, unsigned char *sig, size_t *siglen, const unsigned char *tbs,
@@ -438,6 +443,10 @@ xkey_cng_rsa_sign(CAPI_DATA *cd, unsigned char *sig, size_t *siglen, const unsig
     return (*siglen > 0);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /** Dispatch sign op to xkey_cng_<rsa/ec>_sign */
 static int
 xkey_cng_sign(void *handle, unsigned char *sig, size_t *siglen, const unsigned char *tbs,
index 881459ce3b2a55c9808833849a5b66819e45073a..2cf90afdb9042536bd180960ec8e040e8ae0e9a5 100644 (file)
@@ -491,6 +491,11 @@ dco_check_pull_options(msglvl_t msglevel, const struct options *o)
     return true;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 int
 dco_p2p_add_new_peer(struct context *c)
 {
@@ -645,6 +650,10 @@ dco_multi_add_new_peer(struct multi_context *m, struct multi_instance *mi)
     return 0;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 dco_install_iroute(struct multi_context *m, struct multi_instance *mi, struct mroute_addr *addr)
 {
index d5ca277674d955361be146f43080a27b64d8f9dc..b9f6bc7ccbe6fe9d6c036ba471ad14cfc343f4b1 100644 (file)
@@ -72,6 +72,11 @@ sockaddr_to_nvlist(const struct sockaddr *sa)
     return (nvl);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static bool
 nvlist_to_sockaddr(const nvlist_t *nvl, struct sockaddr_storage *ss)
 {
@@ -854,6 +859,10 @@ retry:
     return 0;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 int
 dco_get_peer_stats(struct context *c, const bool raise_sigusr1_on_err)
 {
index d8357ca897ed98a6c8d4b901b57cab30bf98af0e..395a38fec8049df66232f4fdc77bd76a760ef136 100644 (file)
@@ -62,6 +62,11 @@ void dco_check_key_ctx(const struct key_ctx_bi *key);
 
 typedef int (*ovpn_nl_cb)(struct nl_msg *msg, void *arg);
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /**
  * @brief resolves the netlink ID for ovpn-dco
  *
@@ -1298,4 +1303,8 @@ dco_get_supported_ciphers(void)
     return "AES-128-GCM:AES-256-GCM:AES-192-GCM:CHACHA20-POLY1305";
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #endif /* defined(ENABLE_DCO) && defined(TARGET_LINUX) */
index 2d08ed82ba0f3b95e949c788869d0707e3972247..9e528591a4f996b0473ce96dd9fa8d30f50cb7ba 100644 (file)
@@ -525,6 +525,11 @@ dco_set_peer(dco_context_t *dco, unsigned int peerid, int keepalive_interval, in
     return 0;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 int
 dco_new_key(dco_context_t *dco, unsigned int peerid, int keyid, dco_key_slot_t slot,
             const uint8_t *encrypt_key, const uint8_t *encrypt_iv, const uint8_t *decrypt_key,
@@ -564,6 +569,11 @@ dco_new_key(dco_context_t *dco, unsigned int peerid, int keyid, dco_key_slot_t s
     }
     return 0;
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 int
 dco_del_key(dco_context_t *dco, unsigned int peerid, dco_key_slot_t slot)
 {
index 7abade5209bd58cc86a1a4d7129f4beaabee49d7..38e8d409699007e79ba419b14180d375b9038913 100644 (file)
@@ -72,6 +72,11 @@ get_dhcp_message_type(const struct dhcp *dhcp, const int optlen)
     return -1;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static in_addr_t
 do_extract(struct dhcp *dhcp, int optlen)
 {
@@ -185,3 +190,7 @@ dhcp_extract_router_msg(struct buffer *ipbuf)
     }
     return 0;
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
index 581bdbba989cf3b893f360cb768bd3646f05ffb1..2f60b78911e28648dc46ad6a0f5ea91f1cefaf0d 100644 (file)
 #define SELECT_MAX_FDS 256
 #endif
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static inline int
 tv_to_ms_timeout(const struct timeval *tv)
 {
@@ -78,6 +83,10 @@ tv_to_ms_timeout(const struct timeval *tv)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #ifdef _WIN32
 
 struct we_set
index 12dd6a7134f25168e3d155f3112be9db48be77e7..f342958e331a5e2cede2912c37053fd97a36c6ee 100644 (file)
@@ -367,6 +367,11 @@ check_connection_established(struct context *c)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 bool
 send_control_channel_string_dowork(struct tls_session *session, const char *str,
                                    msglvl_t msglevel)
@@ -1966,6 +1971,10 @@ process_outgoing_tun(struct context *c, struct link_socket *in_sock)
     perf_pop();
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 pre_select(struct context *c)
 {
index e6ebbef673995cba53bc8c94d29d9d87166a14ca..0e5e93fabdee2e88f325ee39a5dcdf686bfff208 100644 (file)
@@ -98,6 +98,11 @@ flip(int n)
     return (get_random() % n) == 0;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /*
  * Return uniformly distributed random number between
  * low and high.
@@ -229,4 +234,9 @@ corrupt_gremlin(struct buffer *buf, int flags)
         }
     }
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #endif /* ifdef ENABLE_DEBUG */
index be2063853a5a2cf1d0ddd610539effc825826b2e..f665b17b5a18d23bcf83de6d9ab490ea22b4dd4a 100644 (file)
@@ -61,6 +61,11 @@ CvtHex(IN HASH Bin, OUT HASHHEX Hex)
     Hex[HASHHEXLEN] = '\0';
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /* calculate H(A1) as per spec */
 void
 DigestCalcHA1(IN char *pszAlg, IN char *pszUserName, IN char *pszRealm, IN char *pszPassword,
@@ -145,4 +150,8 @@ DigestCalcResponse(IN HASHHEX HA1,         /* H(A1) */
     CvtHex(RespHash, Response);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #endif /* if PROXY_DIGEST_AUTH */
index 0d7a2ec40163028243419a5e4a9ab35e086a5d74..f8a0fee61fc61b63211a73f6651dacaa1ca9c5f8 100644 (file)
@@ -455,6 +455,11 @@ ce_management_query_remote(struct context *c)
 }
 #endif /* ENABLE_MANAGEMENT */
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /*
  * Initialize and possibly randomize the connection list.
  *
@@ -3490,6 +3495,10 @@ do_init_frame_tls(struct context *c)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /*
  * No encryption or authentication.
  */
index 2b35314021d1b14df925f707c6bbbd29204a8da4..fbefcd923a10f06971a87483b8065b770157c15a 100644 (file)
@@ -38,6 +38,11 @@ interval_init(struct interval *top, int horizon, int refresh)
     top->horizon = horizon;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 bool
 event_timeout_trigger(struct event_timeout *et, struct timeval *tv, const int et_const_retry)
 {
@@ -77,3 +82,7 @@ event_timeout_trigger(struct event_timeout *et, struct timeval *tv, const int et
     }
     return ret;
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
index 3a73d5f2939707505e8f5e26c1892bde0cd49f91..8daaec01a429a6a78c198f4894a81bf8246902fd 100644 (file)
@@ -72,6 +72,11 @@ lzo_compress(struct buffer *buf, struct buffer work, struct compress_context *co
     *header = NO_COMPRESS_BYTE;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static void
 lzo_decompress(struct buffer *buf, struct buffer work, struct compress_context *compctx,
                const struct frame *frame)
@@ -121,6 +126,10 @@ lzo_decompress(struct buffer *buf, struct buffer work, struct compress_context *
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 const struct compress_alg lzo_alg = { "lzo", lzo_compress_init, lzo_compress_uninit, lzo_compress,
                                       lzo_decompress };
 #endif /* ENABLE_LZO */
index c675e95300a2ffc895715e9766eb2e0d89392bfd..5a41a0f857b47a492cbd594c4f0d39a584faaf82 100644 (file)
@@ -206,6 +206,11 @@ man_password_needed(struct management *man)
     return man->settings.up.defined && !man->connection.password_verified;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static void
 man_check_password(struct management *man, const char *line)
 {
@@ -236,6 +241,10 @@ man_check_password(struct management *man, const char *line)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 static void
 man_update_io_state(struct management *man)
 {
@@ -2305,6 +2314,11 @@ managment_android_persisttun_action(struct management *man)
 
 #endif /* ifdef TARGET_ANDROID */
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static int
 man_read(struct management *man)
 {
@@ -2442,6 +2456,10 @@ man_write(struct management *man)
     return sent;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 static void
 man_connection_clear(struct man_connection *mc)
 {
index 0750fecdf346d41fdf01fc8e41056ce58ae576a7..448124c92c5043f1da723b4bee342b50f680a94c 100644 (file)
 
 #include "memdbg.h"
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 struct mbuf_set *
 mbuf_init(unsigned int size)
 {
@@ -44,6 +49,10 @@ mbuf_init(unsigned int size)
     return ret;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 mbuf_free(struct mbuf_set *ms)
 {
index d3d316dcb6bd052926da7f97e4cf5e72ce7e3b0c..caf4725e4f0267a2045a5856cf7a8763e93d59f1 100644 (file)
@@ -72,6 +72,11 @@ set_std_files_to_null(bool stdin_only)
 #endif
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 #ifdef ENABLE_MANAGEMENT
 /* Get username/password from the management interface */
 static bool
@@ -184,6 +189,10 @@ parse_auth_challenge(const char *auth_challenge, struct gc_arena *gc)
 
 #endif /* ifdef ENABLE_MANAGEMENT */
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /*
  * Get and store a username/password
  */
index ab01874b27985a8898bee2af033ab98e94340cf9..88ea647489d9c3e82bdd1ab66f02f353ab2f3710 100644 (file)
@@ -103,6 +103,11 @@ mroute_learnable_address(const struct mroute_addr *addr, struct gc_arena *gc)
     return true;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static inline void
 mroute_get_in_addr_t(struct mroute_addr *ma, const in_addr_t src, unsigned int mask)
 {
@@ -547,6 +552,10 @@ mroute_helper_del_iroute46(struct mroute_helper *mh, int netbits)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 mroute_helper_free(struct mroute_helper *mh)
 {
index 32cd3f87301cb5f10c45e0c7d85517faca35fab6..e7111a8bb7b668c1affe26e3d0c87e8b9bf8657d 100644 (file)
@@ -130,6 +130,11 @@ mss_fixup_ipv6(struct buffer *buf, uint16_t maxmss)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /*
  * change TCP MSS option in SYN/SYN-ACK packets, if present
  * this is generic for IPv4 and IPv6, as the TCP header is the same
@@ -199,6 +204,10 @@ mss_fixup_dowork(struct buffer *buf, uint16_t maxmss)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 static inline size_t
 adjust_payload_max_cbc(const struct key_type *kt, size_t target)
 {
index 81310a2bb5af0b8c5b1fa1abae13d5d05aeb2ca4..83edec6e89543390ca4939caa8af29f456c02b08 100644 (file)
@@ -45,6 +45,11 @@ struct ta_iow_flags
     unsigned int sock;
 };
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 struct multi_instance *
 multi_create_instance_tcp(struct multi_context *m, struct link_socket *sock)
 {
@@ -120,6 +125,10 @@ multi_tcp_instance_specific_init(struct multi_context *m, struct multi_instance
     return true;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 multi_tcp_instance_specific_free(struct multi_instance *mi)
 {
index 9c1a7727d475a07180c4df8f03ea01667374cec6..66f81a62980e68d296bd8b1a2a15835ecb6bec3e 100644 (file)
@@ -280,6 +280,11 @@ struct probehdr
     struct timeval tv;
 };
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 const char *
 format_extended_socket_error(int fd, int *mtu, struct gc_arena *gc)
 {
@@ -389,6 +394,10 @@ exit:
     return BSTR(&out);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 set_sock_extended_error_passing(int sd, sa_family_t proto_af)
 {
index 31134bea88e0eeda86e69b00ac9bbe35d126b813..a373a6a04c96a763f9bc4d7cbb0c6069a30ea1f2 100644 (file)
@@ -180,6 +180,11 @@ do_pre_decrypt_check(struct multi_context *m, struct tls_pre_decrypt_state *stat
     return false;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /*
  * Get a client instance based on real address.  If
  * the instance doesn't exist, create it while
@@ -310,6 +315,10 @@ multi_get_create_instance_udp(struct multi_context *m, bool *floated, struct lin
     return mi;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /*
  * Send a packet to UDP socket.
  */
index 1d2ee53e3e7312f8133188516fbefb2b666eb8c2..2863ff173e4b29ed8a409da795c1c8f31b74a835 100644 (file)
@@ -256,6 +256,11 @@ cid_compare_function(const void *key1, const void *key2)
 
 #endif
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 #ifdef ENABLE_ASYNC_PUSH
 static uint32_t
 /*
@@ -3982,6 +3987,10 @@ management_callback_kill_by_addr(void *arg, const in_addr_t addr, const int port
     return count;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 static void
 management_delete_event(void *arg, event_t event)
 {
index 00d61067f8e98634a84d02cdef70cb65ce0bd8ba..1815faf37adc88aeaa4449c75f96f51b8f87eeed 100644 (file)
@@ -131,6 +131,11 @@ struct sitnl_route_data_cb
     inet_address_t gw;
 };
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /**
  * Helper function used to easily add attributes to a rtnl message
  */
@@ -1469,6 +1474,10 @@ net_iface_del(openvpn_net_ctx_t *ctx, const char *iface)
     return sitnl_send(&req.n, 0, 0, NULL, NULL);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #endif /* !ENABLE_SITNL */
 
 #endif /* TARGET_LINUX */
index c2a93e85443bf4127b355d8dee5c7d9510d7c280..521677b83da33e5f2a5ce93fa026e2cc13fc0aec 100644 (file)
@@ -74,6 +74,11 @@ gen_hmac_md5(const uint8_t *data, int data_len, const uint8_t *key, uint8_t *res
     hmac_ctx_free(hmac_ctx);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static void
 gen_timestamp(uint8_t *timestamp)
 {
@@ -383,4 +388,8 @@ ntlm_phase_3(const struct http_proxy_info *p, const char *phase_2, struct gc_are
 
     return ((const char *)make_base64_string2((unsigned char *)phase3, phase3_bufpos, gc));
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
 #endif /* if NTLM */
index 8821a06cc09de26ec65e9ced67a546be6f21ecb4..78013aeba0a2de539c478e994fedb1602eb2364a 100644 (file)
@@ -174,6 +174,11 @@ check_send_occ_req_dowork(struct context *c)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 void
 check_send_occ_load_test_dowork(struct context *c)
 {
@@ -347,6 +352,10 @@ check_send_occ_msg_dowork(struct context *c)
     c->c2.occ_op = -1;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 process_received_occ_msg(struct context *c)
 {
index 6fd73905813224c882823065cca3358a7c5eaa0a..e3e7cf8e8765e5c8b69baa8391a0761ee0ff9848 100644 (file)
@@ -194,12 +194,21 @@ SSL_get0_peer_signature_name(const SSL *ssl, const char **sigalg)
           LIBRESSL_VERSION_NUMBER > 0x3050400fL) */
 
 #if OPENSSL_VERSION_NUMBER < 0x30200000L && OPENSSL_VERSION_NUMBER >= 0x30000000L
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static inline const char *
 SSL_get0_group_name(SSL *s)
 {
     int nid = SSL_get_negotiated_group(s);
     return SSL_group_to_name(s, nid);
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
 #endif
 
 #endif /* OPENSSL_COMPAT_H_ */
index 151a0167f156df32b264ec7d66c9a74d5e320442..f801743df0bf4e4cdd63f6bea7435f4fe0bfc701 100644 (file)
@@ -1158,6 +1158,11 @@ ipv6_addr_safe_hexplusbits(const char *ipv6_prefix_spec)
     return get_ipv6_addr(ipv6_prefix_spec, &t_addr, &t_bits, M_WARN);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static char *
 string_substitute(const char *src, int from, int to, struct gc_arena *gc)
 {
@@ -9900,6 +9905,10 @@ err:
     gc_free(&gc);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 bool
 has_udp_in_local_list(const struct options *options)
 {
index fdc0c55f33c06b924325492dff6d7bdc5bbc4e06..8a1c0837020ac0a63e514850466eace5806bff79 100644 (file)
@@ -162,6 +162,11 @@ atoi_warn(const char *str, msglvl_t msglevel)
     return (int)i;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 bool
 atoi_constrained(const char *str, int *value, const char *name, int min, int max, msglvl_t msglevel)
 {
@@ -193,6 +198,10 @@ atoi_constrained(const char *str, int *value, const char *name, int min, int max
     return true;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 static const char *updatable_options[] = { "block-ipv6", "block-outside-dns",
                                            "dhcp-option", "dns",
                                            "ifconfig", "ifconfig-ipv6",
index 717f7495edb7b1cdfd038bfa548b2457f684e0ce..d9bf1573dc7eb2737c23acfa64e82c47da868e75 100644 (file)
@@ -100,6 +100,11 @@ tv_string_abs(const struct timeval *tv, struct gc_arena *gc)
 
 /* format a time_t as ascii, or use current time if 0 */
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 const char *
 time_string(time_t t, long usec, bool show_usec, struct gc_arena *gc)
 {
@@ -130,6 +135,10 @@ time_string(time_t t, long usec, bool show_usec, struct gc_arena *gc)
     return BSTR(&out);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /*
  * Limit the frequency of an event stream.
  *
index 5c700bb3559384afde656160d4549533a7d24d54..108d0f2266a8c4df539e6835ec172dd3e119dcb5 100644 (file)
@@ -59,6 +59,11 @@ void update_now(const time_t system_time);
 extern time_t now_usec;
 void update_now_usec(struct timeval *tv);
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static inline int
 openvpn_gettimeofday(struct timeval *tv, void *tz)
 {
@@ -236,6 +241,10 @@ tv_delta(struct timeval *dest, const struct timeval *t1, const struct timeval *t
     dest->tv_usec = usec;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #define TV_WITHIN_SIGMA_MAX_SEC  600
 #define TV_WITHIN_SIGMA_MAX_USEC (TV_WITHIN_SIGMA_MAX_SEC * 1000000)
 
index ca318eb988623a72fe9418488e2adb510ad6a756..880eee1299d2964f0eba07f4a0f9017a489c336e 100644 (file)
@@ -71,6 +71,11 @@ packet_id_debug(msglvl_t msglevel, const struct packet_id_rec *p,
 #endif
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static void
 packet_id_init_recv(struct packet_id_rec *rec, int seq_backtrack, int time_backtrack,
                     const char *name, int unit)
@@ -663,6 +668,10 @@ packet_id_read_epoch(struct packet_id_net *pin, struct buffer *buf)
     return epoch;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 bool
 packet_id_write_epoch(struct packet_id_send *p, uint16_t epoch, struct buffer *buf)
 {
index a7eb25619de35b0e59c1aad8f5f6f3cc5507d7b1..e9d36470033f453d176dcb2c01f4bed4b4ffd93e 100644 (file)
@@ -280,6 +280,11 @@ packet_id_persist_enabled(const struct packet_id_persist *p)
     return p->fd >= 0;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /* transfer packet_id -> packet_id_persist */
 static inline void
 packet_id_persist_save_obj(struct packet_id_persist *p, const struct packet_id *pid)
@@ -291,6 +296,10 @@ packet_id_persist_save_obj(struct packet_id_persist *p, const struct packet_id *
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /**
  * Reset the current send packet id to its initial state.
  * Use very carefully (e.g. in the standalone reset packet context) to
index 8a7a3204e20439f802ffea32aa924a24eae38b21..16149caf17922f4e7cca9afde4fe2cff3559d15d 100644 (file)
@@ -53,6 +53,11 @@ __mygettimeofday(struct timeval *tv)
 }
 #endif
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static void
 __mysleep(const unsigned long usec)
 {
@@ -558,6 +563,10 @@ cleanup:
     return success;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 int
 tls_ctx_use_pkcs11(struct tls_root_ctx *const ssl_ctx, bool pkcs11_id_management,
                    const char *const pkcs11_id)
index 23c01ab3f8c5dd1d53ad14187082613283543bd3..f619b9531eefd8b0d23df51570fa409af9864962 100644 (file)
@@ -428,6 +428,11 @@ cleanup:
     return dn;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 int
 pkcs11_certificate_serial(pkcs11h_certificate_t certificate, char *serial, size_t serial_len)
 {
@@ -468,4 +473,9 @@ cleanup:
 
     return ret;
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #endif /* defined(ENABLE_PKCS11) && defined(ENABLE_OPENSSL) */
index 9d8fe75c0b6673566b5e7bfa18cf1874278e2a26..02554ba174fcdbdbb201a3f8c768cbbf0532c84a 100644 (file)
@@ -54,6 +54,11 @@ init_http_proxy_options_once(struct http_proxy_options **hpo, struct gc_arena *g
 }
 
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /* cached proxy username/password */
 static struct user_pass static_proxy_user_pass;
 
@@ -1063,3 +1068,7 @@ error:
     gc_free(&gc);
     return ret;
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
index a10df2efb4f465799d84edc00ec46ef8c4ff8299..1d14367141d7158ccefe84e7785ef8661d8a55a7 100644 (file)
@@ -475,6 +475,11 @@ proxy_entry_new(struct proxy_connection **list, struct event_set *es,
     return true;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /*
  * This function runs in the context of the background proxy process.
  * Receive a control message from the parent (sent by the port_share_sendmsg
@@ -792,6 +797,10 @@ done:
     msg(M_INFO, "PORT SHARE PROXY: proxy exiting");
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /*
  * Called from the main OpenVPN process to enable the port
  * share proxy.
index 60ca25fefa6ba653f627359fb24004c4d0eb2ce5..e7fc50cd613ebe3cc83a7d79f37e503bd5dfdc81 100644 (file)
@@ -429,6 +429,10 @@ send_auth_failed(struct context *c, const char *client_reason)
     gc_free(&gc);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
 
 bool
 send_auth_pending_messages(struct tls_multi *tls_multi, struct tls_session *session,
@@ -1086,6 +1090,10 @@ process_incoming_push_reply(struct context *c, unsigned int permission_mask,
     return ret;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 int
 process_incoming_push_msg(struct context *c, const struct buffer *buffer,
                           bool honor_received_options, unsigned int permission_mask,
index f7a4fca6ff2524c6468cf6f86909b29a1d81b36f..9138bdbfbc3d8e7c0632a15fc77f594e7e6fd68a 100644 (file)
@@ -9,6 +9,11 @@
 #include "multi.h"
 #endif
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 int
 process_incoming_push_update(struct context *c, unsigned int permission_mask,
                              unsigned int *option_types_found, struct buffer *buf,
@@ -306,3 +311,7 @@ management_callback_send_push_update_by_cid(void *arg, unsigned long cid, const
     RETURN_UPDATE_STATUS(n_sent);
 }
 #endif /* ifdef ENABLE_MANAGEMENT */
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
index b4a747f9c2721b72d1890c8f78492f059089ed4f..0c8b55285ce35af429cd1bffb67bf85e163291c4 100644 (file)
@@ -687,6 +687,11 @@ reliable_schedule_now(struct reliable *rel)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /* in how many seconds should we wake up to check for timeout */
 /* if we return BIG_TIMEOUT, nothing to wait for */
 interval_t
@@ -719,6 +724,10 @@ reliable_send_timeout(const struct reliable *rel)
     return ret;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /*
  * Enable an incoming buffer previously returned by a get function as active.
  */
index aa5ce690278b2c55392dd7d9697d2a621e2f6745..156a99eb41d056d98038ff2d4ee37a1fc8e3d599 100644 (file)
@@ -1760,6 +1760,10 @@ done:
     return (status != RTA_ERROR);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
 
 void
 route_ipv6_clear_host_bits(struct route_ipv6 *r6)
@@ -2364,6 +2368,10 @@ delete_route_ipv6(const struct route_ipv6 *r6, const struct tuntap *tt, const st
     net_ctx_reset(ctx);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /*
  * The --redirect-gateway option requires OS-specific code below
  * to get the current default gateway.
@@ -3360,6 +3368,11 @@ struct rtmsg
 
 #define max(a, b) ((a) > (b) ? (a) : (b))
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 void
 get_default_gateway(struct route_gateway_info *rgi, in_addr_t dest, openvpn_net_ctx_t *ctx)
 {
@@ -3733,6 +3746,10 @@ done:
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #undef max
 
 #elif defined(TARGET_HAIKU)
index c9fef24061a2237dce7aa7e0b8d2c6c0c24a3548..1389889d48325cf06dc2888ecb5868863157f61f 100644 (file)
@@ -65,6 +65,11 @@ schedule_entry_debug_info(const char *caller, const struct schedule_entry *e)
 }
 #endif
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static inline void
 schedule_set_pri(struct schedule_entry *e)
 {
@@ -75,6 +80,10 @@ schedule_set_pri(struct schedule_entry *e)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /* This is the master key comparison routine.  A key is
  * simply a struct timeval containing the absolute time for
  * an event.  The unique treap priority (pri) is used to ensure
index afedf5d0681aacd41a1ab0622d65f7a661bf7206..5fcf82037ac3b2fa70b0ab9649cc2e38da78d1ca 100644 (file)
@@ -72,6 +72,11 @@ sf2gaf(const unsigned int getaddr_flags, const unsigned int sockflags)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /*
  * Functions related to the translation of DNS names to IP addresses.
  */
@@ -2449,6 +2454,10 @@ link_socket_write_tcp(struct link_socket *sock, struct buffer *buf, struct link_
 #endif
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #if ENABLE_IP_PKTINFO
 
 ssize_t
index 1102421806186cbaea65812f11de1b405b9f68b0..85bbde5e7cdd66ce101fc788311dbaacbf8c0110 100644 (file)
@@ -80,6 +80,11 @@ socks_proxy_close(struct socks_proxy_info *sp)
     free(sp);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static bool
 socks_proxy_recv_char(char *c, const char *name, socket_descriptor_t sd,
                       struct event_timeout *server_poll_timeout,
@@ -438,6 +443,10 @@ error:
     return;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 establish_socks_proxy_udpassoc(struct socks_proxy_info *p,
                                socket_descriptor_t ctrl_sd, /* already open to proxy */
index ba6919bdb75cf364d4acff73c113ae0c7b60a6f3..34036f272d9845095bcdfbcbb303963da0493a83 100644 (file)
@@ -180,6 +180,11 @@ tls_init_control_channel_frame_parameters(struct frame *frame, int tls_mtu)
     frame->tun_mtu = max_int(frame->tun_mtu, TLS_CHANNEL_MTU_MIN);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /**
  * calculate the maximum overhead that control channel frames have
  * This includes header, op code and everything apart from the
@@ -222,6 +227,10 @@ calc_control_channel_frame_overhead(const struct tls_session *session)
     return overhead;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 init_ssl_lib(void)
 {
@@ -1120,6 +1129,11 @@ compute_earliest_wakeup(interval_t *earliest, interval_t seconds_from_now)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /*
  * Return true if "lame duck" or retiring key has expired and can
  * no longer be used.
@@ -3979,6 +3993,10 @@ tls_prepend_opcode_v1(const struct tls_multi *multi, struct buffer *buf)
     ASSERT(buf_write_prepend(buf, &op, 1));
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 tls_prepend_opcode_v2(const struct tls_multi *multi, struct buffer *buf)
 {
index b2d511e1c9cf5e0dcc8edcc616d7b8aba26d6aa3..80eb51b901398fec3bb6aa8489b5e65eaa0e7044 100644 (file)
@@ -585,6 +585,11 @@ tls_ctx_load_priv_file(struct tls_root_ctx *ctx, const char *priv_key_file, bool
     return 0;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /**
  * external_pkcs1_sign implements a mbed TLS rsa_sign_func callback, that uses
  * the management interface to request an RSA signature for the supplied hash.
@@ -1004,6 +1009,10 @@ tls_ctx_personalise_random(struct tls_root_ctx *ctx)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 int
 tls_version_max(void)
 {
index 958acea14185f93b2caa17034dd21c31e234e635..790e50fc9e58386c6715042842af9b01dc627526 100644 (file)
@@ -534,6 +534,11 @@ check_session_cipher(struct tls_session *session, struct options *options)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /**
  * Replaces the string DEFAULT with the string \c replace.
  *
@@ -566,6 +571,10 @@ replace_default_in_ncp_ciphers_option(struct options *o, const char *replace)
     o->ncp_ciphers = (char *)ncp_ciphers;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /**
  * Checks for availibility of Chacha20-Poly1305 and sets
  * the ncp_cipher to either AES-256-GCM:AES-128-GCM or
index 8c8b1e21ad8efea411f8e39fdac5f019c70a3212..89deeaa2ee02cfadc7064533a893d787f7af8561 100644 (file)
@@ -272,6 +272,11 @@ openssl_tls_version(int ver)
     return 0;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static bool
 tls_ctx_set_tls_versions(struct tls_root_ctx *ctx, unsigned int ssl_flags)
 {
@@ -424,6 +429,10 @@ convert_tls_list_to_openssl(char *openssl_ciphers, size_t len, const char *ciphe
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 void
 tls_ctx_restrict_ciphers(struct tls_root_ctx *ctx, const char *ciphers)
 {
@@ -2513,6 +2522,11 @@ print_details(struct key_state_ssl *ks_ssl, const char *prefix)
     msg(D_HANDSHAKE, "%s%s%s%s%s", s1, s2, s3, s4, s5);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 void
 show_available_tls_ciphers_list(const char *cipher_list, const char *tls_cert_profile, bool tls13)
 {
@@ -2580,6 +2594,10 @@ show_available_tls_ciphers_list(const char *cipher_list, const char *tls_cert_pr
     SSL_CTX_free(tls_ctx.ctx);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /*
  * Show the Elliptic curves that are available for us to use
  * in the OpenSSL library.
index 6ec05a7eeb9896baf7f9c56d891354f9366af152..825719cbf51eaf014ff8e8a940f653c0e7417c16 100644 (file)
@@ -160,6 +160,11 @@ tls_wrap_control(struct tls_wrap_ctx *ctx, uint8_t header, struct buffer *buf,
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 void
 write_control_auth(struct tls_session *session, struct key_state *ks, struct buffer *buf,
                    struct link_socket_actual **to_link_addr, int opcode, int max_ack,
@@ -495,6 +500,10 @@ calculate_session_id_hmac(struct session_id client_sid, const struct openvpn_soc
     return result.sid;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 bool
 check_session_hmac_and_pkt_id(struct tls_pre_decrypt_state *state,
                               const struct openvpn_sockaddr *from,
index 918a1f191c3dad458dfa44e3bc07f44309b0d923..50e8c03adc6dfeaadaaeeba6814bb6073f5b01dc 100644 (file)
@@ -290,6 +290,11 @@ tls_get_cipher_name_pair(const char *cipher_name, size_t len)
     return NULL;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 int
 get_num_elements(const char *string, char delimiter)
 {
@@ -309,3 +314,7 @@ get_num_elements(const char *string, char delimiter)
 
     return element_count;
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
index 7658f2d8a3033d4c6587caa56e39a92cef8758b2..04ef27e86c1d40a1e619dcf28a7b34573b593015 100644 (file)
@@ -874,6 +874,11 @@ check_auth_pending_method(const char *peer_info, const char *method)
     return supported;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /**
  *  Checks if the deferred state should also send auth pending
  *  request to the client. Also removes the auth_pending control file
@@ -945,6 +950,9 @@ key_state_check_auth_pending_file(struct auth_deferred_status *ads, struct tls_m
     return ret;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
 
 /**
  *  Removes auth_pending and auth_control files from file system
index c92eaf17b0de0effc8ce5c0313a8cd9fd6de214a..472eb49153912d0b7f025c60f444888540bd583b 100644 (file)
@@ -250,6 +250,11 @@ err:
     return FAILURE;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static struct buffer
 x509_get_fingerprint(const mbedtls_md_info_t *md_info, mbedtls_x509_crt *cert, struct gc_arena *gc)
 {
@@ -260,6 +265,10 @@ x509_get_fingerprint(const mbedtls_md_info_t *md_info, mbedtls_x509_crt *cert, s
     return fingerprint;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 struct buffer
 x509_get_sha1_fingerprint(mbedtls_x509_crt *cert, struct gc_arena *gc)
 {
index f1b890297d4ee07df460ed9bb076f4143831103f..40d117bbcc9bc9a1c6125f6730bf1327a9a9af5e 100644 (file)
@@ -667,6 +667,11 @@ x509_verify_ns_cert_type(openvpn_x509_cert_t *peer_cert, const int usage)
     return FAILURE;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 result_t
 x509_verify_cert_ku(X509 *x509, const unsigned *const expected_ku, int expected_len)
 {
@@ -726,6 +731,10 @@ x509_verify_cert_ku(X509 *x509, const unsigned *const expected_ku, int expected_
     return fFound;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 result_t
 x509_verify_cert_eku(X509 *x509, const char *const expected_oid)
 {
index cea31f53f719b60d6c4a7d43ccc040f0c9715a5d..1e1e3fbf6123c3c2ec775da1c1058a0bbec60070 100644 (file)
@@ -207,6 +207,11 @@ status_close(struct status_output *so)
     return ret;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 #define STATUS_PRINTF_MAXLEN 512
 
 void
@@ -303,3 +308,7 @@ status_read(struct status_output *so, struct buffer *buf)
 
     return ret;
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
index 737b556915b0f23fdb81fed1bd36db9b8a45a79f..51b4eb3f4da3758abdbef3fc096e8b2758646a32 100644 (file)
@@ -205,6 +205,11 @@ err:
     return false;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 bool
 tls_crypt_unwrap(const struct buffer *src, struct buffer *dst, struct crypto_options *opt)
 {
@@ -413,6 +418,10 @@ tls_crypt_v2_wrap_client_key(struct buffer *wkc, const struct key2 *src_key,
     return buf_copy(wkc, &work);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 static bool
 tls_crypt_v2_unwrap_client_key(struct key2 *client_key, struct buffer *metadata,
                                struct buffer wrapped_client_key, struct key_ctx *server_key)
index c213c4b44b10c1bb9480879e2158a3e017b51c92..e35f889323abbe9a7dcc45a669a0f8e5a40f1239 100644 (file)
@@ -1720,6 +1720,11 @@ header_modify_read_write_return(int len)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static int
 write_tun_header(struct tuntap *tt, uint8_t *buf, int len)
 {
@@ -1773,6 +1778,11 @@ read_tun_header(struct tuntap *tt, uint8_t *buf, int len)
         return read(tt->fd, buf, len);
     }
 }
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #endif /* if defined (TARGET_OPENBSD) || defined(TARGET_DARWIN) */
 
 bool
@@ -2244,6 +2254,11 @@ close_tun(struct tuntap *tt, openvpn_net_ctx_t *ctx)
     free(tt);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 int
 write_tun(struct tuntap *tt, uint8_t *buf, int len)
 {
@@ -2256,6 +2271,10 @@ read_tun(struct tuntap *tt, uint8_t *buf, int len)
     return read(tt->fd, buf, len);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #elif defined(TARGET_SOLARIS)
 
 #ifndef TUNNEWPPA
@@ -2935,6 +2954,11 @@ close_tun(struct tuntap *tt, openvpn_net_ctx_t *ctx)
     argv_free(&argv);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 int
 write_tun(struct tuntap *tt, uint8_t *buf, int len)
 {
@@ -2989,6 +3013,10 @@ read_tun(struct tuntap *tt, uint8_t *buf, int len)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #elif defined(TARGET_DRAGONFLY)
 
 static inline int
@@ -3277,6 +3305,11 @@ open_tun(const char *dev, const char *dev_type, const char *dev_node, struct tun
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 void
 close_tun(struct tuntap *tt, openvpn_net_ctx_t *ctx)
 {
@@ -3326,6 +3359,10 @@ read_tun(struct tuntap *tt, uint8_t *buf, int len)
     }
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #elif defined(TARGET_AIX)
 
 void
@@ -5517,6 +5554,11 @@ tun_standby(struct tuntap *tt)
     return ret;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /*
  * Convert DHCP options from the command line / config file
  * into a raw DHCP-format options string.
@@ -5656,6 +5698,10 @@ write_dhcp_search_str(struct buffer *buf, const int type, const char *const *str
     buf_write(buf, tmp_buf, len);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 static bool
 build_dhcp_options_string(struct buffer *buf, const struct tuntap_options *o)
 {
index a6a6e93c65e59033a655abbf50366fe22d2abbdd..3da470a9350f850a59b0b2de84a4bdae0c2029f0 100644 (file)
@@ -43,6 +43,11 @@ vlanhdr_get_vid(const struct openvpn_8021qhdr *hdr)
     return ntohs(hdr->pcp_cfi_vid & OPENVPN_8021Q_MASK_VID);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /*
  * Set the VLAN Identifier (VID) in an IEEE 802.1Q header.
  *
@@ -56,6 +61,10 @@ vlanhdr_set_vid(struct openvpn_8021qhdr *hdr, const uint16_t vid)
         (hdr->pcp_cfi_vid & ~OPENVPN_8021Q_MASK_VID) | (htons(vid) & OPENVPN_8021Q_MASK_VID);
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /*
  * vlan_decapsulate - remove 802.1q header and return VID
  *
index 15bcf3787b1371e3204c5358a92cae8668cd8eee..eac2352a4c4d9418f045104dd35b04ca993945e9 100644 (file)
@@ -1418,6 +1418,11 @@ win32_version_string(struct gc_arena *gc)
     return (const char *)out.data;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 bool
 send_msg_iservice(HANDLE pipe, const void *data, size_t size, ack_message_t *ack,
                   const char *context)
@@ -1632,4 +1637,8 @@ unprotect_buffer_win32(char *buf, size_t len)
     return ret;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 #endif /* ifdef _WIN32 */
index 0983e5912750fc97188c89f702ccc03ce4c772c9..ce0d4dd1550b7a08613976f7d52f01630fd16713 100644 (file)
@@ -1383,6 +1383,11 @@ InitialSearchListExists(HKEY key)
     return TRUE;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 /**
  * Prepare DNS domain "SearchList" registry value, so additional
  * VPN domains can be added and its original state can be restored
@@ -2614,6 +2619,10 @@ SetNrptRules(HKEY nrpt_key, const nrpt_address_t *addresses, const char *domains
     return err;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 /**
  * Return the registry key where NRPT rules are stored
  *
index 3f327c25c47693eb6d4b0fdd27fb1c1f3c00aff7..22e6912cb61b7690903fe81854cc478dcee27371 100644 (file)
@@ -674,6 +674,11 @@ struct epoch_test_state
     struct crypto_options co;
 };
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static int
 crypto_test_epoch_setup(void **state)
 {
@@ -694,6 +699,10 @@ crypto_test_epoch_setup(void **state)
     return 0;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 static int
 crypto_test_epoch_teardown(void **state)
 {
index d5688659040e0c401230f44691fc04ccddccbe61..a4ba08844c01cab9c7b908fcebfbd2eec7fbbb00 100644 (file)
@@ -378,7 +378,7 @@ test_pkcs11_ids(void **state)
         /* decode the base64 data and convert to X509 and get its sha1 fingerprint */
         unsigned char *der = malloc(strlen(base64));
         assert_non_null(der);
-        int derlen = openvpn_base64_decode(base64, der, strlen(base64));
+        int derlen = openvpn_base64_decode(base64, der, (int)strlen(base64));
         free(base64);
         assert_true(derlen > 0);
 
index bb02fcc9f70a55793aeffdd8503330a35c966a50..ed40a7dd9b665ed4b9dfaec2709af4f524614973 100644 (file)
@@ -133,6 +133,11 @@ static struct
     const char *keyfile;
 } global_state;
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
 static int
 init(void **state)
 {
@@ -154,6 +159,10 @@ init(void **state)
     return 0;
 }
 
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 static int
 cleanup(void **state)
 {