[Bug 35445] CPCE v4.1 (Coral Point Count with Excel extensions, VB6 app) fails on startup (needs scrrun IFolder::get_Path)

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Mar 10 16:17:29 CDT 2014


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

--- Comment #4 from Anastasius Focht <focht at gmx.net> ---
Hello Nikolay,

I saw your recent commits in master:

http://source.winehq.org/git/wine.git/commitdiff/a9a2c9b5391680ef55c01f8168b6ef7c9e78f8fa
("scrrun: Fix Next() for file collection.")

http://source.winehq.org/git/wine.git/commitdiff/fac1c0d25b8852767dbbf53b9b5ce3997ad0c604
("scrrun: Fix Skip() for file collection.")

Unfortunately the app crashes now:

--- snip ---
...
0024:trace:scrrun:folder_get_Files (0x161430)->(0x33f190)
0024:trace:ole:SysAllocStringLen L"C:\\CPCe_41_inst\\codeimages"
0024:trace:ole:DispCallFunc retval: 0x33f1a0->{VT_ERROR}
0024:trace:ole:ITypeInfo_fnInvoke [retval] value:
0x1bd058->{VT_DISPATCH|VT_BYREF,0x33f190}
0024:trace:variant:VariantInit (0x33f7b8)
0024:trace:variant:VariantCopyInd
(0x33f7b8->(VT_EMPTY),0x1bd058->(VT_DISPATCH|VT_BYREF))
0024:trace:variant:VariantClear (0x33f7b8->(VT_EMPTY))
0024:trace:scrrun:filecoll_AddRef (0x1bd140)->(2)
0024:trace:variant:VariantCopyInd returning 0x00000000, 0x33f7b8->(VT_DISPATCH)
0024:trace:variant:VARIANT_ClearInd (0x1bd058->(VT_DISPATCH|VT_BYREF))
0024:trace:scrrun:filecoll_Release (0x1bd140)->(1)
0024:trace:variant:VariantClear (0x1bd068->(VT_EMPTY))
0024:trace:ole:ITypeInfo_fnInvoke -- 0x00000000
0024:trace:ole:ITypeInfo_fnRelease (0x1b68a8)->(4294967295)
0024:trace:scrrun:filecoll_Invoke (0x1bd140)->(-4
{00000000-0000-0000-0000-000000000000} 1033 3 0x33f574 0x33f584 0x33f554
0x33f5a0)
0024:trace:ole:ITypeLib2_fnGetTypeInfoOfGuid 0x161080
{c7c3f5a5-88a3-11d0-abcb-00a0c90fffc0} 0x33f3e4
0024:trace:ole:ITypeInfo_fnAddRef (0x1b7e38)->ref is 1
0024:trace:ole:ITypeLib2_fnAddRef (0x161080) ref=2
0024:trace:ole:ITypeInfo_fnInvoke
(0x1b7e38)(0x1bd140,id=-4,flags=0x00000003,0x33f574,0x33f584,0x33f554,0x33f5a0)
0024:trace:ole:dump_DispParms args=0 named args=0
0024:trace:ole:ITypeInfo_fnInvoke invoking:
L"_NewEnum"(1)
    parm0: L"ppenum"
memid is fffffffc
Param 0:
        tdesc.vartype 26 (ptr to VT_UNKNOWN)
        u.paramdesc.wParamFlags PARAMFLAG_FOUT PARAMFLAG_FRETVAL
        u.paramdesc.lpex (nil)
    funckind: 1 (pure virtual)
    invkind: 2 (property get)
    callconv: 4 (stdcall)
    oVft: 32
    cParamsOpt: 0
    wFlags: 41
    elemdescFunc (return value type):
        tdesc.vartype 25 (VT_HRESULT)
        u.paramdesc.wParamFlags PARAMFLAGS_NONE
        u.paramdesc.lpex (nil)
    helpstring: (null)
    entry: invalid
0024:trace:ole:ITypeInfo_fnInvoke changing args
0024:trace:ole:DispCallFunc (0x1bd140, 32, 4, 10, 1, 0x1bd07c, 0x1bd078,
0x33f1c0 (vt=10))
0024:trace:ole:DispCallFunc arg 0: type 16397
0024:trace:ole:dump_Variant 0x1bd058->{VT_UNKNOWN|VT_BYREF,0x33f1b0}
0024:trace:scrrun:filecoll_get__NewEnum (0x1bd140)->(0x33f1b0)
0024:trace:scrrun:filecoll_AddRef (0x1bd140)->(2)
0024:trace:ole:DispCallFunc retval: 0x33f1c0->{VT_ERROR}
0024:trace:ole:ITypeInfo_fnInvoke [retval] value:
0x1bd058->{VT_UNKNOWN|VT_BYREF,0x33f1b0}
0024:trace:variant:VariantInit (0x33f584)
0024:trace:variant:VariantCopyInd
(0x33f584->(VT_EMPTY),0x1bd058->(VT_UNKNOWN|VT_BYREF))
0024:trace:variant:VariantClear (0x33f584->(VT_EMPTY))
0024:trace:scrrun:enumvariant_AddRef (0x1bd158)->(2)
0024:trace:variant:VariantCopyInd returning 0x00000000, 0x33f584->(VT_UNKNOWN)
0024:trace:variant:VARIANT_ClearInd (0x1bd058->(VT_UNKNOWN|VT_BYREF))
0024:trace:scrrun:filecoll_enumvariant_Release (0x1bd158)->(1)
0024:trace:variant:VariantClear (0x1bd068->(VT_EMPTY))
0024:trace:ole:ITypeInfo_fnInvoke -- 0x00000000
0024:trace:ole:ITypeInfo_fnRelease (0x1b7e38)->(0)
0024:trace:ole:ITypeLib2_fnRelease (0x161080) ref=1
0024:trace:scrrun:enumvariant_QueryInterface
(0x1bd158)->({00020404-0000-0000-c000-000000000046} 0x33f6ac)
0024:trace:scrrun:enumvariant_AddRef (0x1bd158)->(2)
0024:trace:scrrun:filecoll_enumvariant_Release (0x1bd158)->(1)
0024:trace:scrrun:filecoll_enumvariant_Next (0x1bd158)->(1 0x33f8a0 (nil))
0024:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7b841430
ip=7b841430 tid=0024
0024:trace:seh:raise_exception  info[0]=00000000
0024:trace:seh:raise_exception  info[1]=00000004
0024:trace:seh:raise_exception  eax=00000004 ebx=7b8bb000 ecx=0033f2a0
edx=7bcecb88 esi=0033f2a0 edi=0033f8a0
0024:trace:seh:raise_exception  ebp=0033f288 esp=0033f200 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00010217 
...
Unhandled exception: page fault on read access to 0x00000004 in 32-bit code
(0x7b841430).
...
Backtrace:

=>0 0x7b841430 FindNextFileW+0xa8(handle=<couldn't compute location>,
data=<couldn't compute location>)
[/home/focht/projects/wine/wine.repo/src/dlls/kernel32/file.c:2058] in kernel32
(0x0033f288)

  1 0x7d61920d filecoll_enumvariant_Next+0x11f(iface=<couldn't compute
location>, celt=<couldn't compute location>, var=<couldn't compute location>,
fetched=<couldn't compute location>)
[/home/focht/projects/wine/wine.repo/src/dlls/scrrun/filesystem.c:968] in
scrrun (0x0033f548)

  2 0x6610607e in msvbvm60 (+0x10607d) (0x0033f59c)
  3 0x6610603f in msvbvm60 (+0x10603e) (0x0033f5c4)
  4 0x0055177e in cpce_41 (+0x15177d) (0x0033f974)
  5 0x66051fb3 in msvbvm60 (+0x51fb2) (0x0033f980)
  6 0x00483cf3 in cpce_41 (+0x83cf2) (0x0033f990)
  7 0x660522b4 in msvbvm60 (+0x522b3) (0x0033f9dc)
  8 0x6605271b in msvbvm60 (+0x5271a) (0x0033fab0)
  9 0x660528e7 in msvbvm60 (+0x528e6) (0x0033fad4) 
...
--- snip ---

There is a missing initialization of 'This->data.u.filecoll.find' hence the
crash in filecoll_enumvariant_Next():

http://source.winehq.org/git/wine.git/blob/fac1c0d25b8852767dbbf53b9b5ce3997ad0c604:/dlls/scrrun/filesystem.c#l948

Missing init here:
http://source.winehq.org/git/wine.git/blob/fac1c0d25b8852767dbbf53b9b5ce3997ad0c604:/dlls/scrrun/filesystem.c#l1053

$ wine --version
wine-1.7.14-23-g770213e

Regards

-- 
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