[Bug 5322] Both MSVC6 and MSVB6 installers die very early

Wine Bugs wine-bugs at winehq.org
Sat Jun 24 03:36:01 CDT 2006


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


truiken at gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |LATER




------- Additional Comments From truiken at gmail.com  2006-24-06 03:36 -------
I've looked *very* closely into this bug, and I've come to the conclusion that
the VB/VC++ 6 installer is retarded.  Here's exactly what happens:

1) With version set to Win2k and higher, the setup tries to obtain performance
data from HKLM\Software\Microsoft\Windows NT\Current Version\Perflib\009.  009
should have two REG_MULTI_SZ values, Counters and Help.  Win98 doesn't have this
ability, so setting win98 doesn't crash the installer.

2) Installer calls RegOpenKeyEx on 009, which fails with ERROR_FILE_NOT_FOUND
(we don't provide that key by default). goes to error case.

3) If 2 succeeds, the installer calls RegQueryValueEx on Counters.  Fails unless
you provide a string.  goes to error case.

4) The installer reads for HKEY_PERFORMANCE_DATA, which we don't have
implemented at all, so I can't hack around it. goes to error case.

5) every step before this succeeded, so HeapAlloc some variable on the stack. 
Note that HeapAlloc is never called before this case, and the variable is
uninitialized if we don't get here.

error case:
The installer calls RtlAllocateHeap on the uninitialized variable, we return
NULL because "block 0x2 is not inside heap", installer proceeds to dereference
the NULL pointer.

I'm tempted to mark this as invalid, but if the installer is expecting the
performance data, then we should provide it.  We'll have to implement
performance counters...though I can't remember if that's provided by a separate
dll, or the kernel.  Marking as LATER.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list