From: Lev Stipakov Date: Tue, 31 Jan 2023 12:54:48 +0000 (+0200) Subject: dco-win: use proper calling convention on x86 X-Git-Tag: v2.6.1~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3c02417c95567dcbc3eafe25c28451fb39005f43;p=thirdparty%2Fopenvpn.git dco-win: use proper calling convention on x86 WinAPI uses __stdcall calling convention on x86. Wrong calling convention causes UB, which in this case breaks dco-win functionality. Signed-off-by: Lev Stipakov Acked-by: Gert Doering Message-Id: <20230131125448.1913-1-lstipakov@gmail.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26113.html Signed-off-by: Gert Doering (cherry picked from commit b78360875cfe2f3ffc0d0aa0785ba3070b597da6) --- diff --git a/src/openvpn/dco_win.c b/src/openvpn/dco_win.c index 7594024ce..0931fb30a 100644 --- a/src/openvpn/dco_win.c +++ b/src/openvpn/dco_win.c @@ -110,7 +110,7 @@ dco_connect_wait(HANDLE handle, OVERLAPPED *ov, int timeout, struct signal_info { volatile int *signal_received = &sig_info->signal_received; /* GetOverlappedResultEx is available starting from Windows 8 */ - typedef BOOL (*get_overlapped_result_ex_t) (HANDLE, LPOVERLAPPED, LPDWORD, DWORD, BOOL); + typedef BOOL (WINAPI *get_overlapped_result_ex_t)(HANDLE, LPOVERLAPPED, LPDWORD, DWORD, BOOL); get_overlapped_result_ex_t get_overlapped_result_ex = (get_overlapped_result_ex_t)GetProcAddress(GetModuleHandle("Kernel32.dll"), "GetOverlappedResultEx"); diff --git a/src/openvpn/win32.c b/src/openvpn/win32.c index 4c3ea842c..1ae3723f1 100644 --- a/src/openvpn/win32.c +++ b/src/openvpn/win32.c @@ -1351,7 +1351,7 @@ win32_get_arch(arch_t *process_arch, arch_t *host_arch) *process_arch = ARCH_UNKNOWN; *host_arch = ARCH_NATIVE; - typedef BOOL (__stdcall *is_wow64_process2_t)(HANDLE, USHORT *, USHORT *); + typedef BOOL (WINAPI *is_wow64_process2_t)(HANDLE, USHORT *, USHORT *); is_wow64_process2_t is_wow64_process2 = (is_wow64_process2_t) GetProcAddress(GetModuleHandle("Kernel32.dll"), "IsWow64Process2");