From 812e6cd2adf301d2f6b2f5ab48e717517c289668 Mon Sep 17 00:00:00 2001 From: Daniel Collins Date: Thu, 15 Sep 2011 14:28:31 +0000 Subject: [PATCH] Load EnumProtocolsA/EnumProtocolsW functions directly from mswsock.dll to avoid stack overflow when the program uses mswsock.dll. --- src/common.c | 6 ++++-- src/ipxwrapper_stubs.txt | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/common.c b/src/common.c index e8b3e01..69611a7 100644 --- a/src/common.c +++ b/src/common.c @@ -113,9 +113,11 @@ void load_dll(unsigned int dllnum) { strcat(path, dll_names[dllnum]); } - dll_handles[dllnum] = LoadLibrary(dllnum ? path : dll_names[dllnum]); + const char *dll = dllnum ? path : dll_names[dllnum]; + + dll_handles[dllnum] = LoadLibrary(dll); if(!dll_handles[dllnum]) { - log_printf("Error loading %s: %s", path, w32_error(GetLastError())); + log_printf("Error loading %s: %s", dll, w32_error(GetLastError())); abort(); } } diff --git a/src/ipxwrapper_stubs.txt b/src/ipxwrapper_stubs.txt index 557e986..97e472d 100644 --- a/src/ipxwrapper_stubs.txt +++ b/src/ipxwrapper_stubs.txt @@ -17,8 +17,8 @@ WSAEventSelect:4 WSACloseEvent:4 WSAResetEvent:4 WSASetEvent:4 -r_EnumProtocolsA:1 -r_EnumProtocolsW:1 +r_EnumProtocolsA:2 +r_EnumProtocolsW:2 r_WSARecvEx:4 r_bind:4 r_closesocket:4