WineHQ
Bug Tracking Database – Bug 23005

 Bugzilla

 

Last modified: 2014-01-17 13:58:54 UTC  

WinWULFF (VB6 app) fails on startup, reporting "Run-time error '10': This array is fixed or temporarily locked"

Bug 23005 - WinWULFF (VB6 app) fails on startup, reporting "Run-time error '10': This array is fixed or temporarily locked"
WinWULFF (VB6 app) fails on startup, reporting "Run-time error '10': This arr...
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: oleaut32
1.1.44
x86 MacOS
: P2 normal
: ---
Assigned To: Mr. Bugs
http://jcrystal.com/products/winwulff...
: download
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2010-06-02 01:50 UTC by annacegu
Modified: 2014-01-17 13:58 UTC (History)
2 users (show)

See Also:
Regression SHA1:
Fixed by SHA1: b058c96136850e543d171d766e5b132ba952cfb5
Distribution: ---
Staged patchset:


Attachments
winwulff runtime error (10.23 KB, text/plain)
2010-06-02 01:51 UTC, annacegu
Details

Note You need to log in before you can comment on or make changes to this bug.
Description annacegu 2010-06-02 01:50:53 UTC
Installed http://jcrystal.com/products/winwulff/WINWULFF_Setup.exe using WineBottler OK.

Attempting to run the program using basic wine install gives the following error as well as attached errors (winebottler-winwulff-error.txt)

Run-time error '10'
This array is fixed or temporarily locked

Needed to install vb6run & dcom98 via winetricks to get the program running
Comment 1 annacegu 2010-06-02 01:51:24 UTC
Created attachment 28509 [details]
winwulff runtime error
Comment 2 Dmitry Timoshkov 2010-06-02 01:58:58 UTC
If you are using winebottler report the bugs to its author. Feel free to
reopen when running plain WineHQ build and the bug still persists.
Comment 3 Dmitry Timoshkov 2010-06-02 01:59:12 UTC
Closing invalid.
Comment 4 annacegu 2010-06-02 02:29:25 UTC
Tried running using command line with the version I have:

/Applications/Wine.app/Contents/MacOS/startwine WINWULFF.exe 

I get the following error:

err:module:import_dll Library MSVBVM60.DLL (which is needed by L"Z:\\Users\\anna\\Documents\\anna\\wine\\WinWulff\\drive_c\\Program Files\\WinWULFF\\WINWULFF.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"Z:\\Users\\anna\\Documents\\anna\\wine\\WinWulff\\drive_c\\Program Files\\WinWULFF\\WINWULFF.exe" failed, status c0000135
Comment 5 Dmitry Timoshkov 2010-06-02 02:36:33 UTC
(In reply to comment #4)
> Tried running using command line with the version I have:
> 
> /Applications/Wine.app/Contents/MacOS/startwine WINWULFF.exe 
> 
> I get the following error:
> 
> err:module:import_dll Library MSVBVM60.DLL (which is needed by
> L"Z:\\Users\\anna\\Documents\\anna\\wine\\WinWulff\\drive_c\\Program
> Files\\WinWULFF\\WINWULFF.exe") not found
> err:module:LdrInitializeThunk Main exe initialization for
> L"Z:\\Users\\anna\\Documents\\anna\\wine\\WinWulff\\drive_c\\Program
> Files\\WinWULFF\\WINWULFF.exe" failed, status c0000135

Install missing dependencies with winetricks.
Comment 6 Dmitry Timoshkov 2010-06-02 02:37:08 UTC
Missing dependencies is not a Wine bug. Closing.
Comment 7 Andrew Nguyen 2010-06-02 03:13:07 UTC
I see the problem with wine-1.2-rc2-91-g4ae5325. My output is identical to attachment 28509 [details].
Comment 8 Andrew Nguyen 2010-06-02 03:13:29 UTC
Confirming the bug.
Comment 9 Bruno Jesus 2011-08-20 13:35:18 UTC
The error 10 happens when you lock a variant/object (vb6) and do not unlock it before trying to do other operations. I checked safearray.c but could not find any function missing an unlock and as the application works on windows it seems the error is really in wine.
Comment 10 Bruno Jesus 2014-01-07 08:45:52 UTC
Still in wine 1.7.10.
Comment 11 Anastasius Focht 2014-01-07 17:09:15 UTC
Hello folks,

confirming.

Relevant part of trace log:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/WinWULFF
$ WINEDEBUG=+tid,+seh,+relay,+snoop,+ole,+variant wine ./WINWULFF.exe >>log.txt 2>&1
...
0025:Call oleaut32.SafeArrayCopy(0033e878,0033e870) ret=66103c0e
0025:trace:variant:SafeArrayCopy (0x33e878,0x33e870)
0025:trace:variant:SafeArrayGetVartype (0x33e878,0x33e792)
0025:trace:variant:SafeArrayAllocDescriptorEx (4->VT_R4,1,0x33e870)
0025:trace:variant:SafeArrayAllocDescriptor (1,0x33e870)
...
0025:trace:variant:SafeArrayAllocDescriptor (1): 24 bytes allocated for descriptor.
0025:Call ntdll.RtlAllocateHeap(00110000,00000008,0000000c) ret=7e7ca9ac
0025:Ret  ntdll.RtlAllocateHeap() retval=001c56b0 ret=7e7ca9ac
0025:Ret  oleaut32.SafeArrayCopy() retval=00000000 ret=66103c0e
0025:RET  MSVBVM60.__vbaAryCopy() retval=00000000 ret=004b63a9
0025:CALL MSVBVM60.__vbaFreeStr() ret=004b63d6
0025:Call oleaut32.SysFreeString(001c5eec L"1") ret=660e60c0
0025:Ret  oleaut32.SysFreeString() retval=00000000 ret=660e60c0
0025:RET  MSVBVM60.__vbaFreeStr() retval=00000000 ret=004b63d6
0025:CALL MSVBVM60.__vbaAryDestruct(00000000,0033e84c) ret=004b63e8
0025:Call oleaut32.SafeArrayDestroyData(0033e878) ret=660db598
0025:trace:variant:SafeArrayDestroyData (0x33e878)
0025:Ret  oleaut32.SafeArrayDestroyData() retval=00000000 ret=660db598
0025:Call oleaut32.SafeArrayDestroyData(0033e878) ret=660db6f6
0025:trace:variant:SafeArrayDestroyData (0x33e878)
...
0025:Ret  oleaut32.SafeArrayDestroyData() retval=00000000 ret=660db6f6
0025:RET  MSVBVM60.__vbaAryDestruct() retval=00000000 ret=004b63e8
0025:CALL MSVBVM60.__vbaAryUnlock(0033ee4c) ret=004bc8b0
0025:Call oleaut32.SafeArrayUnlock(001c5e68) ret=660dbbcf
0025:trace:variant:SafeArrayUnlock (0x1c5e68) 
...
0025:CALL MSVBVM60.__vbaRedim() ret=004bd0c4
0025:Call oleaut32.SysFreeString(00000000) ret=6600e1a9
0025:Ret  oleaut32.SysFreeString() retval=0033e800 ret=6600e1a9
0025:Call oleaut32.SysFreeString(00000000) ret=6600e1ae
0025:Ret  oleaut32.SysFreeString() retval=0033e800 ret=6600e1ae
0025:Call oleaut32.SysFreeString(00000000) ret=6600e1b3
0025:Ret  oleaut32.SysFreeString() retval=0033e800 ret=6600e1b3
0025:Call KERNEL32.MultiByteToWideChar(00000000,00000000,0040ca10 "WINWULFF",ffffffff,00000000,00000000) ret=660da0b1
0025:Ret  KERNEL32.MultiByteToWideChar() retval=00000009 ret=660da0b1
0025:Call oleaut32.SysAllocStringLen(00000000,00000008) ret=660da0bc
0025:trace:ole:SysAllocStringLen (null)
0025:Ret  oleaut32.SysAllocStringLen() retval=001c8a44 ret=660da0bc
0025:Call KERNEL32.MultiByteToWideChar(00000000,00000000,0040ca10 "WINWULFF",ffffffff,001c8a44,00000009) ret=660da0db
0025:Ret  KERNEL32.MultiByteToWideChar() retval=00000009 ret=660da0db
0025:Call KERNEL32.RaiseException(c000008f,00000001,00000002,0033e824) ret=660d0956
0025:trace:seh:raise_exception code=c000008f flags=1 addr=0x7b83a89f ip=7b83a89f tid=0025
0025:trace:seh:raise_exception  info[0]=deadcafe
0025:trace:seh:raise_exception  info[1]=deadcafe
0025:trace:seh:raise_exception  eax=7b826921 ebx=7b8ba000 ecx=deadcafe edx=0033e784 esi=0033e824 edi=0033e7f0
0025:trace:seh:raise_exception  ebp=0033e7c8 esp=0033e764 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00200283
0025:trace:seh:call_stack_handlers calling handler at 0x403656 code=c000008f flags=1 
...
0025:Call KERNEL32.MultiByteToWideChar(00000000,00000000,0033dd64 "This array is fixed or temporarily locked",ffffffff,00000000,00000000) ret=660d9fcb 
...
0025:Call KERNEL32.MultiByteToWideChar(00000000,00000000,0033e80c "Run-time error '10'",ffffffff,00000000,00000000) ret=660d9fcb 
--- snip ---

The error about the safearray being fixed/locked is not the real cause.
It's just the aftermath in VB exception handler which tries to clean up/destroy dynamically allocated objects.

The exception is thrown from VB6 runtime on __vbaRedim entry, it doesn't expect psa->fFeatures = 0x92 (FADF_HAVEVARTYPE | FADF_FIXEDSIZE | FADF_STATIC).

There is a test for psa->fFeatures flags: if any of (FADF_FIXEDSIZE | FADF_EMBEDDED | FADF_STATIC) set (0x16) -> throw.

FADF_HAVEVARTYPE type (0x80) is ok (expected).

Maybe native 'sanitizes' some safearray feature flags during __vbaAryRecCopy -> SAFEARRAY_CopyData().

The app starts successfully after I filtered out some flags (FADF_FIXEDSIZE | FADF_EMBEDDED | FADF_STATIC) on destination safearray in SAFEARRAY_CopyData().

Bug 8539 looks similar, it also needs sanitization of feature flags in SAFEARRAY_CopyData().

$ sha1sum WINWULFF_Setup.exe 
ad488014ef1ce8b73497a1ca6a1c73f4a3cf21b2  WINWULFF_Setup.exe

$ du -sh WINWULFF_Setup.exe
4.3M	WINWULFF_Setup.exe

$ wine --version
wine-1.7.10-222-ge12bb32

Regards
Comment 12 Nikolay Sivov 2014-01-08 05:34:59 UTC
Interesting, I'll make some tests.
Comment 13 Nikolay Sivov 2014-01-08 08:50:10 UTC
Patch sent http://www.winehq.org/pipermail/wine-patches/2014-January/129476.html.
Comment 14 Anastasius Focht 2014-01-09 15:24:18 UTC
Hello folks,

this is fixed by commit http://source.winehq.org/git/wine.git/commitdiff/b058c96136850e543d171d766e5b132ba952cfb5

Thanks Nikolay

Regards
Comment 15 Alexandre Julliard 2014-01-17 13:58:54 UTC
Closing bugs fixed in 1.7.11.


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers