https://bugs.winehq.org/show_bug.cgi?id=35445
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello Nikolay,
I saw your recent commits in master:
http://source.winehq.org/git/wine.git/commitdiff/a9a2c9b5391680ef55c01f8168b... ("scrrun: Fix Next() for file collection.")
http://source.winehq.org/git/wine.git/commitdiff/fac1c0d25b8852767dbbf53b9b5... ("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/fac1c0d25b8852767dbbf53b9b5ce3997...
Missing init here: http://source.winehq.org/git/wine.git/blob/fac1c0d25b8852767dbbf53b9b5ce3997...
$ wine --version wine-1.7.14-23-g770213e
Regards