[Bug 51790] MSI is no longer able to detect correct architecture for a custom action DLL

WineHQ Bugzilla wine-bugs at winehq.org
Sun Oct 10 02:18:31 CDT 2021


https://bugs.winehq.org/show_bug.cgi?id=51790

--- Comment #1 from Dmitry Timoshkov <dmitry at baikal.ru> ---
(In reply to Dmitry Timoshkov from comment #0)
> MSI relies on GetBinaryType() to return correct architecture for a custom
> action DLL, however GetBinaryType() started to intentionally fail for DLL
> files. This for instance leads to inability to run a 32-bit action from a
> 64-bit installer process.
> 
> This essentially breaks any installer in a WoW64 Wine prefix. This bug
> should probably have 'major' severity set.

Whist it's a pretty serious regression, there was no attempt to fix it yet.

In case it's not recognizable on the first sight, here is the relevant commit:

commit 02268cb290493c899b56996405ca7c65a8046e3c
Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Jul 1 10:47:08 2021 +0200

    kernel32: Fix the DLL check in GetBinaryTypeW().

    Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51375
    Signed-off-by: Alexandre Julliard <julliard at winehq.org>

diff --git a/dlls/kernel32/module.c b/dlls/kernel32/module.c
index adf6b3c9a60..415f7f65714 100644
--- a/dlls/kernel32/module.c
+++ b/dlls/kernel32/module.c
@@ -190,7 +190,7 @@ BOOL WINAPI GetBinaryTypeW( LPCWSTR name, LPDWORD type )
             status = NtQuerySection( mapping, SectionImageInformation, &info,
sizeof(info), NULL );
             CloseHandle( mapping );
             if (status) return FALSE;
-            if (!(info.ImageCharacteristics & IMAGE_FILE_DLL)) return FALSE;
+            if (info.ImageCharacteristics & IMAGE_FILE_DLL) return FALSE;
             switch (info.Machine)
             {
             case IMAGE_FILE_MACHINE_I386:

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list