This is what the Win32 APIs use. Since we put static
integers into this (e.g. sizeof()) this doesn't
result in new conversion warnings at the caller sites.
Change-Id: Ia836e3c05a868a7e8419c2bb2f547d968260783c
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1269
Message-Id: <
20251013162221.2156-1-gert@greenie.muc.de>
URL: https://sourceforge.net/p/openvpn/mailman/message/
59246222/
Signed-off-by: Gert Doering <gert@greenie.muc.de>
/* Returns RTA_SUCCESS on success, RTA_EEXIST if route exists, RTA_ERROR on error */
static int
-do_route_service(const bool add, const route_message_t *rt, const size_t size, HANDLE pipe)
+do_route_service(const bool add, const route_message_t *rt, const DWORD size, HANDLE pipe)
{
int ret = RTA_ERROR;
ack_message_t ack;
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,
+send_msg_iservice(HANDLE pipe, const void *data, DWORD size, ack_message_t *ack,
const char *context)
{
struct gc_arena gc = gc_new();
while (expire >= now)
{
- DWORD status = WaitForSingleObject(win32_signal.in.read, (expire - now) * 1000);
+ DWORD wait_ms = (DWORD)((expire - now) * 1000);
+ DWORD status = WaitForSingleObject(win32_signal.in.read, wait_ms);
if ((status == WAIT_OBJECT_0 && win32_signal_get(&win32_signal)) || status == WAIT_TIMEOUT)
{
return;
{
if (expire > now)
{
- Sleep((expire - now) * 1000);
+ Sleep((DWORD)((expire - now) * 1000));
}
return;
}
}
bool
-protect_buffer_win32(char *buf, size_t len)
+protect_buffer_win32(char *buf, DWORD len)
{
bool ret;
if (len % CRYPTPROTECTMEMORY_BLOCK_SIZE)
}
bool
-unprotect_buffer_win32(char *buf, size_t len)
+unprotect_buffer_win32(char *buf, DWORD len)
{
bool ret;
if (len % CRYPTPROTECTMEMORY_BLOCK_SIZE)
return ret;
}
-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic pop
-#endif
-
#endif /* ifdef _WIN32 */
*/
const char *win32_version_string(struct gc_arena *gc);
-/*
- * Send the |size| bytes in buffer |data| to the interactive service |pipe|
- * and read the result in |ack|. Returns false on communication error.
- * The string in |context| is used to prefix error messages.
+/**
+ * Send the \p size bytes in buffer \p data to the interactive service \p pipe
+ * and read the result in \p ack.
+ * The string in \p context is used to prefix error messages.
+ *
+ * @return true on success, false on communication error
*/
-bool send_msg_iservice(HANDLE pipe, const void *data, size_t size, ack_message_t *ack,
+bool send_msg_iservice(HANDLE pipe, const void *data, DWORD size, ack_message_t *ack,
const char *context);
/*
* - len number of bytes to encrypt -- must be a multiple of
* CRYPTPROTECTMEMORY_BLOCK_SIZE = 16
*/
-bool protect_buffer_win32(char *buf, size_t len);
+bool protect_buffer_win32(char *buf, DWORD len);
/**
* Decrypt a previously encrypted region of memory using CryptUnProtectMemory()
* - len number of bytes to encrypt -- must be a multiple of
* CRYPTPROTECTMEMORY_BLOCK_SIZE = 16
*/
-bool unprotect_buffer_win32(char *buf, size_t len);
+bool unprotect_buffer_win32(char *buf, DWORD len);
#endif /* ifndef OPENVPN_WIN32_H */
#endif /* ifdef _WIN32 */
return 0;
}
+#ifdef _WIN32
bool
-protect_buffer_win32(char *buf, size_t len)
+protect_buffer_win32(char *buf, DWORD len)
{
return true;
}
bool
-unprotect_buffer_win32(char *buf, size_t len)
+unprotect_buffer_win32(char *buf, DWORD len)
{
return true;
}
+#endif
/* tooling */
static void