[Bug 35390] Samsung Magician v4.0 fails to install (SWbemLocator.ConnectServer method dispargs are optional)

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Jan 15 17:09:13 CST 2014


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |download, Installer
             Status|RESOLVED                    |REOPENED
                URL|                            |http://orange.micrologik.fr
                   |                            |/Progs/SSD/Samsung_Magician
                   |                            |_Setup_v4.0.exe
                 CC|                            |focht at gmx.net
         Resolution|INVALID                     |---
            Summary|Samsung_Magician_Setup_v4.0 |Samsung Magician v4.0 fails
                   |.exe fails to install       |to install
                   |                            |(SWbemLocator.ConnectServer
                   |                            |method dispargs are
                   |                            |optional)
     Ever confirmed|0                           |1

--- Comment #5 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

I don't see a reason why this doesn't qualify for a valid bug :-)
Fixing any kind of misbehaviour might improve the situation for other apps.

Found a download for v4.0 here:
http://orange.micrologik.fr/Progs/SSD/Samsung_Magician_Setup_v4.0.exe

I ran the sub-installer with some parameters to shorten log/debugging a bit...

Relevant part of trace log:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/users/focht/Temp/is-V24S5.tmp

$ WINEDEBUG=+tid,+seh,+relay,+wbemprox,+wbemdisp,+ole,+variant wine
Samsung_Magician_Setup_v4.0.tmp
/SL5="$10066,7905800,379904,Z:\\home\\focht\\Downloads\\Samsung_Magician_Setup_v4.0.exe"
>>log.txt 2>&1

...
0024:trace:wbemdisp:locator_Invoke 0x14cb28, 1,
{00000000-0000-0000-0000-000000000000}, 2048, 3, 0x33f94c, 0x603210, 0x33f970,
0x33f968
0024:trace:ole:ITypeInfo_fnInvoke
(0x1592c8)(0x14cb28,id=1,flags=0x00000003,0x33f94c,0x603210,0x33f970,0x33f968)
0024:trace:ole:dump_DispParms args=4 named args=0
0024:trace:ole:dump_DispParms args:
0024:trace:ole:dump_Variant 0x681d88->{VT_BSTR,(null)}
0024:trace:ole:dump_Variant 0x681d98->{VT_BSTR,(null)}
0024:trace:ole:dump_Variant 0x681da8->{VT_BSTR,L"root\\CIMV2"}
0024:trace:ole:dump_Variant 0x681db8->{VT_BSTR,(null)}
0024:trace:ole:ITypeInfo_fnInvoke invoking:
L"ConnectServer"(9)
    parm0: L"strServer"
    parm1: L"strNamespace"
    parm2: L"strUser"
    parm3: L"strPassword"
    parm4: L"strLocale"
    parm5: L"strAuthority"
    parm6: L"iSecurityFlags"
    parm7: L"objWbemNamedValueSet"
    parm8: L"objWbemServices"
memid is 00000001
Param 0:
        tdesc.vartype 8 (VT_BSTR)
        u.paramdesc.wParamFlags PARAMFLAG_FIN
        u.paramdesc.lpex (nil)
Param 1:
        tdesc.vartype 8 (VT_BSTR)
        u.paramdesc.wParamFlags PARAMFLAG_FIN
        u.paramdesc.lpex (nil)
Param 2:
        tdesc.vartype 8 (VT_BSTR)
        u.paramdesc.wParamFlags PARAMFLAG_FIN
        u.paramdesc.lpex (nil)
Param 3:
        tdesc.vartype 8 (VT_BSTR)
        u.paramdesc.wParamFlags PARAMFLAG_FIN
        u.paramdesc.lpex (nil)
Param 4:
        tdesc.vartype 8 (VT_BSTR)
        u.paramdesc.wParamFlags PARAMFLAG_FIN
        u.paramdesc.lpex (nil)
Param 5:
        tdesc.vartype 8 (VT_BSTR)
        u.paramdesc.wParamFlags PARAMFLAG_FIN
        u.paramdesc.lpex (nil)
Param 6:
        tdesc.vartype 3 (VT_I4)
        u.paramdesc.wParamFlags PARAMFLAG_FIN
        u.paramdesc.lpex (nil)
Param 7:
        tdesc.vartype 9 (VT_DISPATCH)
        u.paramdesc.wParamFlags PARAMFLAG_FIN
        u.paramdesc.lpex (nil)
Param 8:
        tdesc.vartype 26 (ptr to ptr to VT_USERDEFINED ref = 7d0)
        u.paramdesc.wParamFlags PARAMFLAG_FOUT PARAMFLAG_FRETVAL
        u.paramdesc.lpex (nil)
    funckind: 1 (pure virtual)
    invkind: 1 (func)
    callconv: 4 (stdcall)
    oVft: 28
    cParamsOpt: 0
    wFlags: 0
    elemdescFunc (return value type):
        tdesc.vartype 25 (VT_HRESULT)
        u.paramdesc.wParamFlags PARAMFLAGS_NONE
        u.paramdesc.lpex (nil)
    helpstring: (null)
    entry: invalid
0024:Call ntdll.RtlAllocateHeap(00110000,00000008,00000156) ret=7ecbeaa7
0024:Ret  ntdll.RtlAllocateHeap() retval=0015b710 ret=7ecbeaa7
0024:trace:ole:ITypeInfo_fnAddRef (0x159658)->ref is 1
0024:trace:ole:ITypeLib2_fnAddRef (0x14c408) ref=2
0024:trace:ole:ITypeInfo_fnGetRefTypeInfo (0x1592c8) hreftype 0x07d0 loaded
SUCCESS (0x159658)
0024:trace:ole:ITypeInfo_fnGetTypeAttr (0x159658)
0024:Call ntdll.RtlAllocateHeap(00110000,00000000,0000004c) ret=7ecbeb3c
0024:Ret  ntdll.RtlAllocateHeap() retval=0015b870 ret=7ecbeb3c
0024:trace:ole:ITypeInfo_fnReleaseTypeAttr (0x159658)->(0x15b870)
0024:Call ntdll.RtlFreeHeap(00110000,00000000,0015b870) ret=7ecbebfd
0024:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=7ecbebfd
0024:trace:ole:ITypeInfo_fnRelease (0x159658)->(0)
0024:trace:ole:ITypeLib2_fnRelease (0x14c408) ref=1
0024:trace:ole:ITypeInfo_fnInvoke changing args
0024:trace:ole:dump_Variant 0x681db8->{VT_BSTR,(null)}
0024:trace:ole:dump_Variant 0x681da8->{VT_BSTR,L"root\\CIMV2"}
0024:trace:ole:dump_Variant 0x681d98->{VT_BSTR,(null)}
0024:trace:ole:dump_Variant 0x681d88->{VT_BSTR,(null)}
0024:Call ntdll.RtlFreeHeap(00110000,00000000,0015b710) ret=7ecbebfd
0024:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=7ecbebfd
0024:trace:ole:ITypeInfo_fnInvoke -- 0x8002000e
0024:trace:ole:ITypeInfo_fnRelease (0x1592c8)->(4294967295)
0024:Call
KERNEL32.FormatMessageW(00003200,00000000,8002000e,00000000,0033f6f8,00000100,00000000)
ret=00410e20
0024:Ret  KERNEL32.FormatMessageW() retval=00000000 ret=00410e20
0024:Call KERNEL32.RaiseException(0eedfade,00000001,00000007,0033f8e4)
ret=0049efd3
0024:trace:seh:raise_exception code=eedfade flags=1 addr=0x7b83a913 ip=7b83a913
tid=0024
0024:trace:seh:raise_exception  info[0]=0049efd3
0024:trace:seh:raise_exception  info[1]=0065e530
0024:trace:seh:raise_exception  info[2]=8002000e
0024:trace:seh:raise_exception  info[3]=00000000
0024:trace:seh:raise_exception  info[4]=00000000
0024:trace:seh:raise_exception  info[5]=0033f994
0024:trace:seh:raise_exception  info[6]=0033f900 
...
0024:Call user32.MessageBoxW(00010092,006142fc L"INSTALLATION CANNOT CONTINUE:
''Windows Management Instrumentation'' service is disabled. Please enable and
try again.",0065a13c L"Setup",00000040) ret=0047c3ce 
--- snip ---

The installer only passes four disp args with invoke call.

This is allowed because all '[in]' arguments for SWbemLocator.ConnectServer()
method are also '[optional]'.

MSDN: http://msdn.microsoft.com/en-us/library/aa393720%28v=vs.85%29.aspx

Source:
http://source.winehq.org/git/wine.git/blob/686de978c002a20964724c3586c2070152ee1054:/include/wbemdisp.idl#l88

--- snip ---
88     [ id(1) ]
89     HRESULT ConnectServer(
90         [in] BSTR strServer,
91         [in] BSTR strNamespace,
92         [in] BSTR strUser,
93         [in] BSTR strPassword,
94         [in] BSTR strLocale,
95         [in] BSTR strAuthority,
96         [in] long iSecurityFlags,
97         [in] IDispatch *objWbemNamedValueSet,
98         [out, retval] ISWbemServices **objWbemServices);
--- snip ---

$ sha1sum Samsung_Magician_Setup_v4.0.exe 
e7335e889eb6868a6407a827bb4e0a6f6e1b4c50  Samsung_Magician_Setup_v4.0.exe

$ du -sh Samsung_Magician_Setup_v4.0.exe 
8.0M    Samsung_Magician_Setup_v4.0.exe

$ wine --version
wine-1.7.10-428-g444c2b2

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