[Bug 8548] Runtime error 5 and 440 in factusol 2007 (oleaut32.VariantCopyInd input pvargSrc check fails for VT_RECORD|VT_BYREF)

wine-bugs at winehq.org wine-bugs at winehq.org
Mon May 2 16:23:17 CDT 2011


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |download
                URL|                            |http://www.mundo-descargas.
                   |                            |com/descargas/factusol-2007
                   |                            |-edicion-verano-0-1/
                 CC|                            |focht at gmx.net
            Version|unspecified                 |0.9.37.
            Summary|Runtime error 5 and 440 in  |Runtime error 5 and 440 in
                   |factusol                    |factusol 2007
                   |                            |(oleaut32.VariantCopyInd
                   |                            |input pvargSrc check fails
                   |                            |for VT_RECORD|VT_BYREF)

--- Comment #11 from Anastasius Focht <focht at gmx.net> 2011-05-02 16:23:15 CDT ---
Hello,

found a download here:
http://www.mundo-descargas.com/descargas/factusol-2007-edicion-verano-0-1/

Prerequisites: winetricks mfc40 mfc42

The culprit seems to be related to "SmartTabs" control (smarttabs29).

oleaut32.VariantCopyInd() input pvargSrc check fails for VT_RECORD|VT_BYREF ->
E_INVALIDARG even if supported (VARIANT_CopyIRecordInfo).

--- snip ---
...
0021:Call ntdll.RtlAllocateHeap(00110000,00000000,00000030) ret=6848447f
0021:Ret  ntdll.RtlAllocateHeap() retval=001f3f48 ret=6848447f
0021:Call oleaut32.SysAllocStringLen(001f6ea4 L"Picture1[0]",0000000b)
ret=660de798
0021:Call ntdll.RtlAllocateHeap(00110000,00000000,0000001c) ret=68583ef7
0021:Ret  ntdll.RtlAllocateHeap() retval=001f3700 ret=68583ef7
0021:Ret  oleaut32.SysAllocStringLen() retval=001f3704 ret=660de798
0021:Call oleaut32.VariantCopyInd(001f3f48,0032f2bc) ret=660de86d
0021:trace:variant:VariantCopyInd
(0x1f3f48->(VT_EMPTY),0x32f2bc->(VT_RECORD|VT_BYREF))
0021:Ret  oleaut32.VariantCopyInd() retval=80070057 ret=660de86d
0021:Call oleaut32.SysFreeString(001f3704 L"Picture1[0]") ret=660de87c
0021:Call ntdll.RtlFreeHeap(00110000,00000000,001f3700) ret=68583e95
0021:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=68583e95
0021:Ret  oleaut32.SysFreeString() retval=00000001 ret=660de87c
0021:Call ntdll.RtlFreeHeap(00110000,00000000,001f3f48) ret=6848489e
0021:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=6848489e
0021:CALL MSVBVM60.__vbaHresultCheckObj(<unknown, check return>) ret=11037a94
0021:Call oleaut32.SysFreeString(00000000) ret=6600e1a9
0021:Ret  oleaut32.SysFreeString() retval=68583e57 ret=6600e1a9
0021:Call oleaut32.SysFreeString(00000000) ret=6600e1ae
0021:Ret  oleaut32.SysFreeString() retval=68583e57 ret=6600e1ae
0021:Call oleaut32.SysFreeString(00000000) ret=6600e1b3
0021:Ret  oleaut32.SysFreeString() retval=68583e57 ret=6600e1b3
0021:Call KERNEL32.RaiseException(c000008f,00000001,00000002,0032f18c)
ret=660d0956
0021:trace:seh:raise_exception code=c000008f flags=1 addr=0x7b83821f
ip=7b83821f tid=0021
0021:trace:seh:raise_exception  info[0]=deadcafe
0021:trace:seh:raise_exception  info[1]=deadcafe
0021:trace:seh:raise_exception  eax=7b825665 ebx=7b88fff4 ecx=deadcafe
edx=0032f0a4 esi=0032f18c edi=0032f100
0021:trace:seh:raise_exception  ebp=0032f0e8 esp=0032f084 cs=0073 ds=007b
es=007b fs=0033 gs=003b flags=00000203
0021:trace:seh:call_vectored_handlers calling handler at 0x687896fe
code=c000008f flags=1
0021:trace:seh:call_vectored_handlers handler at 0x687896fe returned 0
0021:trace:seh:call_stack_handlers calling handler at 0x11003f36 code=c000008f
flags=1
0021:CALL MSVBVM60.__vbaExceptHandler(<unknown, check return>) ret=7bc7a5b5 
...
0021:Call KERNEL32.lstrcmpiA(11004945 "SmartTabs.SmartTab",11004945
"SmartTabs.SmartTab") ret=66008d24
...
0021:Call KERNEL32.WideCharToMultiByte(00000000,00000000,001fa0ac L"Run-time
error '5':\n\nInvalid procedure call or
argument",ffffffff,025434e0,0000006e,00000000,00000000) ret=660711c4
0021:Ret  KERNEL32.WideCharToMultiByte() retval=00000038 ret=660711c4 
...
0021:trace:ole:ICreateErrorInfoImpl_SetGUID
(0x1f6ec8)->({00000000-0000-0000-0000-000000000000})
0021:trace:ole:ICreateErrorInfoImpl_SetSource (0x1f6ec8): L"SmartTabs" 
...
0021:trace:ole:ICreateErrorInfoImpl_SetDescription (0x1f6ec8):
L"Application-defined or object-defined error" 
...
0021:Call user32.MessageBoxIndirectA(0032ea08) ret=6606f73f 
...
--- snip ---

debugger:

--- snip ---
trace:variant:VariantCopyInd
(0x1dcd40->(VT_EMPTY),0x33f2bc->(VT_RECORD|VT_BYREF))
Stopped on breakpoint 2 at 0x6879c345 VariantCopyInd+0x196
[/opt/projects/wine/wine-git/dlls/oleaut32/variant.c:870] in oleaut32
870      if (!V_ISBYREF(pvargSrc))
...
Wine-dbg>s
874      vt = V_TYPE(pvargSrc);
Wine-dbg>s
875      if (V_ISARRAY(pvargSrc) ||
...
Wine-dbg>p vt
0x24
...
Wine-dbg>s
882        return E_INVALIDARG; /* ...And the return value for invalid types
differs too */
...
Wine-dbg>bt
Backtrace:
=>0 0x6879c3b8 VariantCopyInd+0x209(pvargDest=0x1dcd40, pvargSrc=0x33f2bc)
[/opt/projects/wine/wine-git/dlls/oleaut32/variant.c:882] in oleaut32
(0x0033f1cc)
  1 0x660de86d in msvbvm60 (+0xde86c) (0x0033f1f4)
  2 0x11037a23 in smarttabs29 (+0x37a22) (0x0033f368)
...
--- snip ---

--- snip dlls/oleaut32/variant.c ---
HRESULT WINAPI VariantCopyInd(VARIANT* pvargDest, VARIANTARG* pvargSrc)
{
  VARIANTARG vTmp, *pSrc = pvargSrc;
  VARTYPE vt;
  HRESULT hres = S_OK;

  TRACE("(%p->(%s%s),%p->(%s%s))\n", pvargDest, debugstr_VT(pvargDest),
        debugstr_VF(pvargDest), pvargSrc, debugstr_VT(pvargSrc),
        debugstr_VF(pvargSrc));

  if (!V_ISBYREF(pvargSrc))
    return VariantCopy(pvargDest, pvargSrc);

  /* Argument checking is more lax than VariantCopy()... */
  vt = V_TYPE(pvargSrc);
  if (V_ISARRAY(pvargSrc) ||
     (vt > VT_NULL && vt != (VARTYPE)15 && vt < VT_VOID &&
     !(V_VT(pvargSrc) & (VT_VECTOR|VT_RESERVED))))
  {
    /* OK */
  }
  else
    return E_INVALIDARG; /* ...And the return value for invalid types differs
too */
...

 else if (V_VT(pSrc) == (VT_RECORD|VT_BYREF))
  {
    V_UNION(pvargDest,brecVal) = V_UNION(pvargSrc,brecVal);
    hres = VARIANT_CopyIRecordInfo(&V_UNION(pvargDest,brecVal));
  }
....
--- snip dlls/oleaut32/variant.c ---

$ wine --version
wine-1.3.19

$ sha1sum factusol-2007-edicion-verano-0-1.msi 
2f26a0d244f3f0c52b4297d233d8c998946d7ac3  factusol-2007-edicion-verano-0-1.msi

Setting version to initial report date.

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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