WineHQ
Bug Tracking Database – Bug 35636

 Bugzilla

 

Last modified: 2014-03-07 14:13:10 UTC  

JobTabs Free Resume Builder 2013 (vb6 app) fails on startup (failure to parse app SxS manifest referencing registry free COM server)

Bug 35636 - JobTabs Free Resume Builder 2013 (vb6 app) fails on startup (failure to parse app SxS manifest referencing registry free COM server)
JobTabs Free Resume Builder 2013 (vb6 app) fails on startup (failure to parse...
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: ntdll
1.7.12
x86 Linux
: P2 normal
: ---
Assigned To: Mr. Bugs
http://download.cnet.com/JobTabs-Free...
: download
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2014-02-21 16:28 UTC by Anastasius Focht
Modified: 2014-03-07 14:13 UTC (History)
0 users

See Also:
Regression SHA1:
Fixed by SHA1: 88fc9164422f48fc67fee58753753e60d09b5058
Distribution: ---
Staged patchset:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anastasius Focht 2014-02-21 16:28:53 UTC
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
Comment 1 Nikolay Sivov 2014-02-22 02:38:31 UTC
Hi.

I'm actually happy we get such problems now, it means that developers are really using this registry-free functionality, so recently added code is not just sitting there doing nothing.
Comment 2 Anastasius Focht 2014-02-24 16:21:46 UTC
Hello folks,

this is fixed by commit http://source.winehq.org/git/wine.git/commit/88fc9164422f48fc67fee58753753e60d09b5058

The app starts fine now.

Thanks Austin and Nikolay

Regards
Comment 3 Alexandre Julliard 2014-03-07 14:13:10 UTC
Closing bugs fixed in 1.7.14.


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

Hosted By CodeWeavers