From da1d0064ae590213f0245125d6974850fecaa943 Mon Sep 17 00:00:00 2001 From: Frank Lichtenheld Date: Wed, 24 Sep 2025 16:57:09 +0200 Subject: [PATCH] event: Silence conversion warning in tv_to_ms_timeout The APIs want int (at least on unixy systems), so we use int. max_int() protects us against negative values. Change-Id: Ie8a242838b6f8b42f36327c33fc62bb5f94ec43f Signed-off-by: Frank Lichtenheld Acked-by: MaxF Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1178 Message-Id: <20250924145715.28701-1-gert@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg33193.html Signed-off-by: Gert Doering --- src/openvpn/event.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/openvpn/event.c b/src/openvpn/event.c index 2f60b7891..ca84d19bd 100644 --- a/src/openvpn/event.c +++ b/src/openvpn/event.c @@ -65,11 +65,15 @@ #define SELECT_MAX_FDS 256 #endif -#if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif +/** Convert \c timeval value (which is in seconds and microseconds) + to a value of milliseconds which is required by multiple polling + APIs. + + @param tv \c timeval to convert + @return Milliseconds to wait. Zero if \p tv is zero. + Otherwise the return value is always greater than zero. +*/ static inline int tv_to_ms_timeout(const struct timeval *tv) { @@ -79,14 +83,11 @@ tv_to_ms_timeout(const struct timeval *tv) } else { - return max_int(tv->tv_sec * 1000 + (tv->tv_usec + 500) / 1000, 1); + /* might overflow but not for practically useful numbers */ + return max_int((int)(tv->tv_sec * 1000 + (tv->tv_usec + 500) / 1000), 1); } } -#if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic pop -#endif - #ifdef _WIN32 struct we_set -- 2.47.3