[Bug 35636] New: JobTabs Free Resume Builder 2013 (vb6 app) fails on startup (failure to parse app SxS manifest referencing registry free COM server)

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Feb 21 16:28:53 CST 2014


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

            Bug ID: 35636
           Summary: JobTabs Free Resume Builder 2013 (vb6 app) fails on
                    startup (failure to parse app SxS manifest referencing
                    registry free COM server)
           Product: Wine
           Version: 1.7.12
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ntdll
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net

Hello folks,

as the summary says ...

Reported in bug 14218 (the infamous 'fixme:ole:OleLoadPictureEx' fallacy)

I can explain it a thousand times
http://bugs.winehq.org/show_bug.cgi?id=14218#c16 and people still get it
wrong...

Prerequisites: 'winetricks -q mfc42 vb6run'

Relevant part of trace log:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/JobTabsRB
...
$ WINEDEBUG=+tid,+seh,+relay,+snoop,+ole,+variant,+actctx wine ./rb.exe
>>log.txt 2>&1
...
002c:trace:actctx:RtlCreateActivationContext 0xffeb1d0c 00000088
002c:trace:actctx:get_manifest_in_module looking for res #0001 in module
0x400000 L"C:\\Program Files\\JobTabsRB\\rb.exe"
002c:trace:actctx:get_manifest_in_associated_manifest looking for manifest
associated with (null) id 1
002c:trace:actctx:get_manifest_in_manifest_file loading manifest file
L"\\??\\C:\\Program Files\\JobTabsRB\\rb.exe.manifest"
002c:trace:actctx:parse_manifest parsing manifest loaded from
L"\\??\\C:\\Program Files\\JobTabsRB\\rb.exe.manifest" base dir (null)
002c:trace:actctx:parse_assembly_elem (0xffeb1afc)
002c:trace:actctx:parse_assembly_identity_elem name=L"rb.exe" version=1.0.0.48
arch=L"x86"
002c:trace:actctx:parse_description_elem Got description L"Built with:
Side-by-Side Manifest Maker, Command Line (4.0.0.4650) (x86)"
002c:trace:actctx:parse_description_elem Got description L"Copyright: (c) Maze
Computer Communications, Inc.  All rights reserved."
002c:trace:actctx:parse_description_elem Got description L"Licensee: JobTabs
LLC; 2095 Hartford Ct.; Marietta; GA; United States"
002c:trace:actctx:parse_description_elem Got description L"License: 1 user
license"
002c:trace:actctx:parse_file_elem name=L"msado15.dll"
002c:warn:actctx:parse_typelib_flags unknown flags value L"hasdiskimage"
002c:fixme:actctx:parse_manifest_buffer failed to parse manifest L"C:\\Program
Files\\JobTabsRB\\rb.exe.manifest" 
...
002c:err:ole:create_server class {ce2e4226-494a-4db2-9b45-7c8586cc01a3} not
registered
002c:err:ole:CoGetClassObject no class object
{ce2e4226-494a-4db2-9b45-7c8586cc01a3} could be created for context 0x5
002c:Ret  ole32.CoCreateInstanceEx() retval=80040154 ret=660e3937
002c:Call ole32.GetErrorInfo(00000000,0033fa2c) ret=660d8306
002c:trace:ole:GetErrorInfo (0, 0x33fa2c, (nil))
002c:Ret  ole32.GetErrorInfo() retval=00000001 ret=660d8306
002c:Call oleaut32.SysFreeString(00000000) ret=6600e1a9
002c:Ret  oleaut32.SysFreeString() retval=0033fa00 ret=6600e1a9
002c:Call oleaut32.SysFreeString(00000000) ret=6600e1ae
002c:Ret  oleaut32.SysFreeString() retval=0033fa00 ret=6600e1ae
002c:Call oleaut32.SysFreeString(00000000) ret=6600e1b3
002c:Ret  oleaut32.SysFreeString() retval=0033fa00 ret=6600e1b3
002c:Call KERNEL32.RaiseException(c000008f,00000001,00000002,0033fa30)
ret=660d0956
002c:trace:seh:raise_exception code=c000008f flags=1 addr=0x7b83a97b
ip=7b83a97b tid=002c
002c:trace:seh:raise_exception  info[0]=deadcafe
002c:trace:seh:raise_exception  info[1]=deadcafe
002c:trace:seh:raise_exception  eax=7b8269e1 ebx=7b8bb000 ecx=deadcafe
edx=0033f984 esi=0033fa30 edi=0033f9f0
002c:trace:seh:raise_exception  ebp=0033f9c8 esp=0033f964 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000283
002c:trace:seh:call_stack_handlers calling handler at 0x4131a6 code=c000008f
flags=1
002c:CALL MSVBVM60.__vbaExceptHandler(<unknown, check return>) ret=7bc867b1 
...
002c:Call KERNEL32.MultiByteToWideChar(00000000,00000000,0033f5b8 "ActiveX
component can't create object",ffffffff,00000000,00000000) ret=660d9fcb 
--- snip ---

'rb.exe.manifest':

--- snip ---
...
<file name="msado15.dll" hashalg="SHA1">
 <typelib
     tlbid="{2A75196C-D9EB-4129-B803-931327F72D5C}"
     version="2.8"
     helpdir=""
     flags="hasdiskimage"/>
</file>
...
--- snip ---

Wine parses typelib flags values case-sensitive, expecting upper-case, leading
to parser failure.

Source:
http://source.winehq.org/git/wine.git/blob/1e1084232d8d95540fbd7196c948ee4f8b5532b2:/dlls/ntdll/actctx.c#l588

--- snip ---
 588 static const WCHAR hasdiskimageW[] =
{'H','A','S','D','I','S','K','I','M','A','G','E',0};
--- snip ---

Source:
http://source.winehq.org/git/wine.git/blob/1e1084232d8d95540fbd7196c948ee4f8b5532b2:/dlls/ntdll/actctx.c#l1635

--- snip ---
1635 static BOOL parse_typelib_flags(const xmlstr_t *value, struct entity
*entity)
1636 {
1637     WORD *flags = &entity->u.typelib.flags;
1638     const WCHAR *str = value->ptr, *start;
1639     int i = 0;
1640
1641     *flags = 0;
1642
1643     /* it's comma separated list of flags */
1644     while (i < value->len)
1645     {
1646         start = str;
1647         while (*str != ',' && (i++ < value->len)) str++;
1648
1649         if (!strncmpW(start, restrictedW, str-start))
1650             *flags |= LIBFLAG_FRESTRICTED;
1651         else if (!strncmpW(start, controlW, str-start))
1652             *flags |= LIBFLAG_FCONTROL;
1653         else if (!strncmpW(start, hiddenW, str-start))
1654             *flags |= LIBFLAG_FHIDDEN;
1655         else if (!strncmpW(start, hasdiskimageW, str-start))
1656             *flags |= LIBFLAG_FHASDISKIMAGE;
...
--- snip ---

$ sha1sum jrbsetup.exe 
f355548489f803ef10a7954b34e965b7ea8eb14b  jrbsetup.exe

$ du -sh jrbsetup.exe 
25M    jrbsetup.exe

$ wine --version
wine-1.7.13

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