[Bug 8439] Visual Studio .NET (7) install fails

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Jan 31 08:20:42 CST 2008


http://bugs.winehq.org/show_bug.cgi?id=8439





--- Comment #3 from Anastasius Focht <focht at gmx.net>  2008-01-31 08:20:40 ---
Created an attachment (id=10544)
 --> (http://bugs.winehq.org/attachment.cgi?id=10544)
patch which fixes MSI_GetProductInfo to treat specific properties with correct
type

Hello,

another installer issue is msi's MsiGetProductInfoW() (MSI_GetProductInfo)
failing to treat specific properties of correct type.
By using default case of switch some values are accidentally read/interpreted
as strings.

This prevents prerequisite installers of VS.NET 2003 and 2005 from finishing
successfully.

--- snip installer msi log ---
[01/31/08,11:14:40] Microsoft FrontPage 2000 Web Extensions Client
[01/31/08,11:14:40]     This component uses the MsiVersionCheck version check
method. It will validate a Windows Installer app on your machine.
[01/31/08,11:14:40]     MSI Update Code:
{0712D42B-19A7-4d8a-899C-B9CDACDE39D3}.
[01/31/08,11:14:40]     Checking for a major version of 7 and a minor version
of 0.
[01/31/08,11:14:40] Setup Runtime Files
[01/31/08,11:14:40]     This component uses the MsiVersionCheck version check
method. It will validate a Windows Installer app on your machine.
[01/31/08,11:14:40]     MSI Update Code:
{663BB9F7-C904-439D-B99D-24D8F1419E2A}.
[01/31/08,11:14:40]     Checking for a major version of 7 and a minor version
of 1.
--- snip installer msi log ---

--- snip trace ---
..
001a:Call msi.MsiGetProductInfoW(0034c22c
L"{AEB9948B-4FF2-47C9-990E-47014492A0FE}",00409208 L"VersionMajor",0034c294
L"",0034c228) ret=0043ea2c
001a:trace:msi:MsiGetProductInfoW L"{AEB9948B-4FF2-47C9-990E-47014492A0FE}"
L"VersionMajor" 0x34c294 0x34c228
001a:trace:msi:MSI_GetProductInfo L"{AEB9948B-4FF2-47C9-990E-47014492A0FE}"
L"VersionMajor" 0x34c154 0x34c228
001a:Call KERNEL32.lstrcmpW(00409208 L"VersionMajor",6174c7a0 L"PackageCode")
ret=617172e0
001a:Ret  KERNEL32.lstrcmpW() retval=00000001 ret=617172e0
001a:Call KERNEL32.lstrcmpW(00409208 L"VersionMajor",6174c7b8
L"AssignmentType") ret=61717516
001a:Ret  KERNEL32.lstrcmpW() retval=00000001 ret=61717516
001a:Call KERNEL32.lstrcmpW(00409208 L"VersionMajor",6174c7d6 L"Language")
ret=61717590
001a:Ret  KERNEL32.lstrcmpW() retval=00000001 ret=61717590
001a:Call KERNEL32.lstrcmpW(00409208 L"VersionMajor",6174c7e8 L"Version")
ret=61717677
001a:Ret  KERNEL32.lstrcmpW() retval=00000001 ret=61717677
001a:Call KERNEL32.lstrcmpW(00409208 L"VersionMajor",6174c7f8 L"ProductName")
ret=61717697
001a:Ret  KERNEL32.lstrcmpW() retval=00000001 ret=61717697
001a:fixme:msi:MSI_GetProductInfo L"VersionMajor"
001a:Call KERNEL32.lstrcmpW(00409208 L"VersionMajor",6174c810 L"VersionString")
ret=6171770b
001a:Ret  KERNEL32.lstrcmpW() retval=ffffffff ret=6171770b
001a:trace:msi:MSIREG_OpenUninstallKey
L"{AEB9948B-4FF2-47C9-990E-47014492A0FE}"
001a:Call advapi32.RegOpenKeyW(80000002,0034bc7c
L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{AEB9948B-4FF2-47C9-990E-47014492A0FE}",0034c108)
ret=61726837
001a:Ret  advapi32.RegOpenKeyW() retval=00000000 ret=61726837
001a:Call advapi32.RegQueryValueExW(00000060,00409208
L"VersionMajor",00000000,00000000,00000000,0034c07c) ret=61729404
001a:Ret  advapi32.RegQueryValueExW() retval=00000000 ret=61729404
001a:Call ntdll.RtlAllocateHeap(00110000,00000000,00000006) ret=61729440
001a:Ret  ntdll.RtlAllocateHeap() retval=00175098 ret=61729440
001a:Call advapi32.RegQueryValueExW(00000060,00409208
L"VersionMajor",00000000,00000000,00175098,0034c07c) ret=61729478
001a:Ret  advapi32.RegQueryValueExW() retval=00000000 ret=61729478
001a:Call advapi32.RegCloseKey(00000060) ret=6171745c
001a:Ret  advapi32.RegCloseKey() retval=00000000 ret=6171745c
001a:trace:msi:MSI_GetProductInfo returning L"\0006"
001a:Call ntdll.RtlFreeHeap(00110000,00000000,00175098) ret=617174a5
001a:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=617174a5
001a:Ret  msi.MsiGetProductInfoW() retval=00000000 ret=0043ea2c
..
--- snip trace ---

MSI_GetProductInfo returns L"\0006" instead of "6".
In this case "VersionMajor" and "VersionMinor" are of REG_DWORD.

Attached patch fixes this.

There are other FIXME's of same category but they seem harmless, not affecting
overall installation result.

--- snip ---
..
fixme:msi:MSI_GetProductInfo L"InstalledProductName"
..
fixme:msi:MSI_GetProductInfo L"VersionString"
..
fixme:msi:MSI_GetProductInfo L"InstallLocation"
--- snip ---

Regards


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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