IS6: Problem in ITypeInfo_fnGetContainingTypeLib

Ove Kaaven ovehk at ping.uio.no
Wed Oct 24 14:12:02 CDT 2001


On Wed, 24 Oct 2001, Uwe Bonnes wrote:

> >>>>> "Ove" == Ove Kaaven <ovehk at ping.uio.no> writes:
> 
>     Ove> On Wed, 24 Oct 2001, Uwe Bonnes wrote:
> 
>     >> after clearing up my home brewn problems I tried the IS6 installer
>     >> for Analog Devices Visual DSP one more time. No it proceeds much
>     >> longer but crashes in ITypeInfo_fnGetContainingTypeLib
> 
>     Ove> Try Malte's typelib refcounting patch, somewhere on wine-patches.
> 
> After correcting pTypeLib into pTLib  in Malte's patchh, Setup proceeded
> much further. 
> 
> Then it reports a "Speicherschutzverletzung" (illegal memory access) and
> freezes:

When debugging InstallShield, it helps to add +seh to the debugmsg command
line and look for recent thrown exceptions before the failure, and in
particular it's fruitful to look for oleaut32 routines returning errors
(retval=8xxxxxxx). But note that I have done several fixes to oleaut32 and
stuff after testing several installers, most of these fixes are only in
WineX CVS right now, I didn't have time to consider submitting them to
Wine yet. As an example, this badness is necessary for two game installers
I've tested:

--- dlls/oleaut32/safearray.c   2001/10/04 13:43:59     1.1.1.8
+++ dlls/oleaut32/safearray.c   2001/10/16 17:33:01     1.3
@@ -356,7 +356,9 @@
         *((BSTR*)pv) = pbstrReturnedStr; 
     }
     else if( psa->fFeatures == FADF_VARIANT) {
-      HRESULT hr = VariantCopy(pv, elementStorageAddress);
+      HRESULT hr;
+      VariantInit(pv);
+      hr = VariantCopy(pv, elementStorageAddress);
       if (FAILED(hr)) {
         SafeArrayUnlock(psa);
         return hr;






More information about the wine-devel mailing list