[PATCH] rundll32: Only call LoadLibrary16 on x86.

Esme Povirk esme at codeweavers.com
Tue Jul 6 16:31:47 CDT 2021


These are imported by ordinal, so on other architectures we end
up calling whatever ends up on that ordinal, which is currently
Beep on x86_64.

Signed-off-by: Esme Povirk <esme at codeweavers.com>
---
 programs/rundll32/rundll32.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/programs/rundll32/rundll32.c b/programs/rundll32/rundll32.c
index eb7713518a9..71703284c99 100644
--- a/programs/rundll32/rundll32.c
+++ b/programs/rundll32/rundll32.c
@@ -83,8 +83,10 @@ static void call_entry_point( void *func, HWND hwnd, HINSTANCE inst, void *cmdli
 }
 #endif
 
+#ifdef __i386__
 static HINSTANCE16 (WINAPI *pLoadLibrary16)(LPCSTR libname);
 static FARPROC16 (WINAPI *pGetProcAddress16)(HMODULE16 hModule, LPCSTR name);
+#endif
 static void (WINAPI *pRunDLL_CallEntry16)( FARPROC proc, HWND hwnd, HINSTANCE inst,
                                            LPCSTR cmdline, INT cmdshow );
 
@@ -112,6 +114,7 @@ static ATOM register_class(void)
     return RegisterClassExW(&wcex);
 }
 
+#ifdef __i386__
 static HINSTANCE16 load_dll16( LPCWSTR dll )
 {
     HINSTANCE16 ret = 0;
@@ -143,6 +146,17 @@ static FARPROC16 get_entry_point16( HINSTANCE16 inst, LPCWSTR entry )
     }
     return ret;
 }
+#else
+static HINSTANCE16 load_dll16( LPCWSTR dll )
+{
+    return 0;
+}
+
+static FARPROC16 get_entry_point16( HINSTANCE16 inst, LPCWSTR entry )
+{
+    return 0;
+}
+#endif
 
 static void *get_entry_point32( HMODULE module, LPCWSTR entry, BOOL *unicode )
 {
-- 
2.30.2




More information about the wine-devel mailing list