http://bugs.winehq.org/show_bug.cgi?id=22429
Summary: wine to support VMWare ThinApps Product: Wine Version: 1.1.43 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: hellweiss@gmx.de
Hi,
i'am trying to start a VMWare ThinApp Application e.g. FreeCommander.exe wine ./FreeCommander.exe. The error Message is:
Executable 'C:\Program Files\FreeCommander\FreeCommander.exe' had the following unrecoverable error: Unable to open C:\Program Files\FreeCommander\FreeCommander.exe
Looks like this is with all ThinApps. I also tested Firefox.exe and IrfanView.exe.
It would be nice, if wine could have support for ThinApps.
Thank you.
http://bugs.winehq.org/show_bug.cgi?id=22429
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|wine to support VMWare |VMWare ThinApps don't run |ThinApps | Severity|enhancement |normal
--- Comment #1 from Dmitry Timoshkov dmitry@codeweavers.com 2010-04-20 05:12:09 --- Please attach terminal output.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #2 from uli hellweiss@gmx.de 2010-04-21 10:42:28 --- I've updated our ThinApp Version to Version 4.5 here is the Terminal output: The error Message is now: Crash in RelaunchUsingCreateProcess
fixme:advapi:LookupAccountNameW (null) L"win.user" 0x33c494 0x33c28c 0x33c894 0x33c284 0x33c290 - stub fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDefaultHardErrorMode wine: Call from 0x7bc3eb58 to unimplemented function ntdll.dll.NtRaiseHardError, aborting
If you don't mind, i can send you a ThinApp .exe File for testing. Thank you
http://bugs.winehq.org/show_bug.cgi?id=22429
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #3 from Austin English austinenglish@gmail.com 2010-04-21 12:31:11 --- (In reply to comment #2)
I've updated our ThinApp Version to Version 4.5 here is the Terminal output: The error Message is now: Crash in RelaunchUsingCreateProcess
fixme:advapi:LookupAccountNameW (null) L"win.user" 0x33c494 0x33c28c 0x33c894 0x33c284 0x33c290 - stub fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDefaultHardErrorMode wine: Call from 0x7bc3eb58 to unimplemented function ntdll.dll.NtRaiseHardError, aborting
Confirming. It's a stub: http://source.winehq.org/git/wine.git/?a=blob;f=dlls/ntdll/ntdll.spec;h=241f...
Seems to be documented here: http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/Error/...
I'll look at sending a stub.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #4 from Austin English austinenglish@gmail.com 2010-04-21 14:30:07 --- Created an attachment (id=27499) --> (http://bugs.winehq.org/attachment.cgi?id=27499) stub
Does this help?
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #5 from uli hellweiss@gmx.de 2010-04-22 08:59:47 --- now i got this:
fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDefaultHardErrorMode
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #6 from Juan Lang juan_lang@yahoo.com 2010-04-22 11:31:06 --- According to http://www.microsoft.com/msj/0197/hood/hood0197.aspx , ProcessDefaultHardErrorMode is a synonym for the return value for GetErrorMode. I'll attach a patch for that in a sec.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #7 from Juan Lang juan_lang@yahoo.com 2010-04-22 11:32:24 --- Created an attachment (id=27511) --> (http://bugs.winehq.org/attachment.cgi?id=27511) Patch: Implement NtQueryInformationProcess for ProcessDefaultHardErrorMode
Does this patch help?
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #8 from uli hellweiss@gmx.de 2010-04-26 04:01:55 --- Created an attachment (id=27563) --> (http://bugs.winehq.org/attachment.cgi?id=27563) WINEDEBUG=all Logfile
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #9 from uli hellweiss@gmx.de 2010-04-26 04:06:09 --- No Errors on the Terminal left. Looks like this requires more work than I expected. I've added a Debug File.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #10 from Juan Lang juan_lang@yahoo.com 2010-04-26 10:29:37 --- Please don't use WINEDEBUG=all unless asked. A relay log might be more useful.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #11 from Juan Lang juan_lang@yahoo.com 2010-04-26 10:35:03 ---
From your log file, this is curious:
0009:Call KERNEL32.SetLastError(0000003b) ret=003e83d0 0009:Ret KERNEL32.SetLastError() retval=0000003b ret=003e83d0 0009:Call ntdll.NtQueryInformationProcess(ffffffff,0000000c,0033e4f0,00000004,00000000) ret=003bab33 0009:trace:ntdll:NtQueryInformationProcess (0xffffffff,0x0000000c,0x33e4f0,0x00000004,(nil)) 0009:Ret ntdll.NtQueryInformationProcess() retval=00000000 ret=003bab33 0009:Call KERNEL32.GetLastError() ret=003e8418 0009:Ret KERNEL32.GetLastError() retval=0000003b ret=003e8418 (snip) 0009:Call ntdll.NtTerminateProcess(ffffffff,ffffffff) ret=003ba997
The process is setting the last error to 0x3b (59, ERROR_UNEXP_NET_ERR) before calling NtQueryInformationProcess. NtQueryInformationProcess succeeds, but the program is calling GetLastError and killing the process anyway. Perhaps it expects the last error to be cleared? I'll attach a new patch in a sec.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #12 from Juan Lang juan_lang@yahoo.com 2010-04-26 10:41:54 --- Actually, I don't think setting last error from NtQueryInformationProcess is appropriate, as that's a Win32 thing, and ntdll doesn't. How very odd.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #13 from uli hellweiss@gmx.de 2010-04-27 09:35:04 --- Could this be a Problem with Folder redirection ?!? I'll try to build another ThinApp which is allowed to write to the local Disk and Registry.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #14 from uli hellweiss@gmx.de 2010-04-27 09:48:55 --- Hmm, it does not work, LastError is still 3b
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #15 from Juan Lang juan_lang@yahoo.com 2010-05-18 13:04:39 --- Created an attachment (id=28065) --> (http://bugs.winehq.org/attachment.cgi?id=28065) Patch: Implement NtSetInformationProcess for ProcessDefaultHardErrorMode
In the off chance that the app expects the kernel32 and ntdll error modes to be in synch, please apply the first patch I attached, this one, and one more I'll attach after this and see if they help.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #16 from Juan Lang juan_lang@yahoo.com 2010-05-18 13:05:44 --- Created an attachment (id=28066) --> (http://bugs.winehq.org/attachment.cgi?id=28066) Patch: Implement GetErrorMode/SetErrorMode on top of NTDLL
Please try with all three of the patches I attached applied.
http://bugs.winehq.org/show_bug.cgi?id=22429
Louis Lenders xerox_xerox2000@yahoo.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xerox_xerox2000@yahoo.co.uk
--- Comment #17 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2010-05-20 15:01:31 --- I tried Mozilla firefox thinapp from http://www.thindownload.com/ It suffers from the bug described in the first description:
Unable to open C:\Program Files\Mozilla Firefox\firefox.exe
If i remove my drive z: using winecfg however, the application starts fine for me.
Uli, could you virtualize a license free program with the newest VMware thinapp, that suffers from the bug described in your 2nd comment, and attach it to this bug? (maybe a simple "hello world" will do??)
http://bugs.winehq.org/show_bug.cgi?id=22429
Danila Sentiabov dsent.zen@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dsent.zen@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=22429
Danila Sentiabov dsent.zen@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|dsent.zen@gmail.com |
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #18 from uli hellweiss@gmx.de 2010-05-28 13:05:33 --- I've been on vacation. I'll upload a Thinapp .exe File on Monday.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #19 from uli hellweiss@gmx.de 2010-05-31 00:48:35 --- make[1]: Entering directory `/home/hellweiss/wine-1.1.43/dlls/kernel32' gcc -m32 -c -I. -I. -I../../include -I../../include -D__WINESRC__ -D_KERNEL32_ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wstrict-prototypes -Wtype-limits -Wwrite-strings -Wpointer-arith -g -O2 -o process.o process.c process.c: In function ‘SetErrorMode’: process.c:2446: warning: passing argument 3 of ‘NtQueryInformationProcess’ makes pointer from integer without a cast ../../include/winternl.h:2103: note: expected ‘PVOID’ but argument is of type ‘UINT’ process.c:2448: error: too many arguments to function ‘NtSetInformationProcess’ process.c: In function ‘GetErrorMode’: process.c:2460: warning: passing argument 3 of ‘NtQueryInformationProcess’ makes pointer from integer without a cast ../../include/winternl.h:2103: note: expected ‘PVOID’ but argument is of type ‘UINT’ make[1]: *** [process.o] Fehler 1
After I've added the 2 Patches I got this.
My co-worker said he's not sure about the VMWare Thinapp licensing. He thinks we're not allowed to upload a Thinapp Package created with our Version.
So I just got a 60 Day Trial Version of the Thinapp Software.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #20 from uli hellweiss@gmx.de 2010-05-31 04:34:46 --- Here's a Link to a Notepad++.exe Packed with Thinapp 4.5 Trial Version.
http://rapidshare.com/files/393576825/notepad__.exe.html
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #21 from Juan Lang juan_lang@yahoo.com 2010-05-31 10:20:37 --- (In reply to comment #19)
process.c:2446: warning: passing argument 3 of ‘NtQueryInformationProcess’ makes pointer from integer without a cast ../../include/winternl.h:2103: note: expected ‘PVOID’ but argument is of type ‘UINT’ process.c:2448: error: too many arguments to function ‘NtSetInformationProcess’ process.c: In function ‘GetErrorMode’: process.c:2460: warning: passing argument 3 of ‘NtQueryInformationProcess’ makes pointer from integer without a cast ../../include/winternl.h:2103: note: expected ‘PVOID’ but argument is of type ‘UINT’
Rats, sorry about that. Wrote this at home, but that machine no longer builds Wine, so I didn't check. I'll upload a new patch here in a second.
http://bugs.winehq.org/show_bug.cgi?id=22429
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #28066|0 |1 is obsolete| |
--- Comment #22 from Juan Lang juan_lang@yahoo.com 2010-05-31 10:23:44 --- Created an attachment (id=28451) --> (http://bugs.winehq.org/attachment.cgi?id=28451) Patch: Implement GetErrorMode/SetErrorMode on top of NTDLL
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #23 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2010-05-31 14:45:17 --- (In reply to comment #22)
Created an attachment (id=28451)
--> (http://bugs.winehq.org/attachment.cgi?id=28451) [details]
Patch: Implement GetErrorMode/SetErrorMode on top of NTDLL
The patch doesn't help to start the app. I think the bug occurs before the NtRaiseHardError is called; I digged through the debuglog but couldn't find anything obvious bug. Maybe someone els can give it a try. I'll attach debug log hereafter
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #24 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2010-05-31 14:46:17 --- Created an attachment (id=28463) --> (http://bugs.winehq.org/attachment.cgi?id=28463) +tid,+relay,+seh log
http://bugs.winehq.org/show_bug.cgi?id=22429
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #28451|0 |1 is obsolete| |
--- Comment #25 from Juan Lang juan_lang@yahoo.com 2010-06-24 18:44:55 --- Created an attachment (id=29119) --> (http://bugs.winehq.org/attachment.cgi?id=29119) Patch: Implement GetErrorMode/SetErrorMode on top of NTDLL
I don't think these patches make a difference, but the last version had an error still. This fixes it.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #26 from adrian.li.100w@gmail.com 2010-06-26 02:14:40 --- Created an attachment (id=29148) --> (http://bugs.winehq.org/attachment.cgi?id=29148) firefox + Thinapp4.5 + wine
http://bugs.winehq.org/show_bug.cgi?id=22429
adrian.li.100w@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #29148|firefox + Thinapp4.5 + wine |firefox + Thinapp4.5 + wine description| |log
http://bugs.winehq.org/show_bug.cgi?id=22429
adrian.li.100w@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |adrian.li.100w@gmail.com
--- Comment #27 from adrian.li.100w@gmail.com 2010-06-26 02:24:11 --- Thinapped Firefox http://www.mediafire.com/?tk5gzjm1fna
http://bugs.winehq.org/show_bug.cgi?id=22429
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #28 from Anastasius Focht focht@gmx.net 2010-06-27 13:39:57 --- Hello,
this ThinApp stuff is comparable in architecture to Xenocode. They wrap/hook/partly emulate NT native API to provide "sandbox" like behaviour.
There are different issues in the examples provided here, I tackle only one per bug, using FireFox as example.
While skimming through the Firefox trace logs I noticed the following anomaly with object manager queries:
--- snip --- ... 002d:trace:ntdll:NtOpenSymbolicLinkObject (0x32e0d8,0x80000000,{name=L"\??", attr=0x00000000, hRoot=(nil), sd=(nil)} ) 002d:trace:ntdll:NtOpenSymbolicLinkObject (0x32e0d8,0x80000000,{name=L"\??\C:", attr=0x00000000, hRoot=(nil), sd=(nil)} ) 002d:trace:ntdll:NtQuerySymbolicLinkObject (0xb0,0x32e0e0,0x32e0dc) 002d:trace:ntdll:NtOpenSymbolicLinkObject (0x32df30,0x80000000,{name=L"\Device", attr=0x00000000, hRoot=(nil), sd=(nil)} ) 002d:trace:ntdll:NtOpenSymbolicLinkObject (0x32df30,0x80000000,{name=L"\Device\HarddiskVolume", attr=0x00000000, hRoot=(nil), sd=(nil)} ) 002d:trace:ntdll:NtOpenSymbolicLinkObject (0x32df30,0x80000000,{name=L"\Device\HarddiskVolume\Program Files", attr=0x00000000, hRoot=(nil), sd=(nil)} ) 002d:trace:ntdll:NtOpenSymbolicLinkObject (0x32df30,0x80000000,{name=L"\Device\HarddiskVolume\Program Files\Mozilla Firefox", attr=0x00000000, hRoot=(nil), sd=(nil)} ) 002d:trace:ntdll:NtOpenSymbolicLinkObject (0x32df30,0x80000000,{name=L"\Device\HarddiskVolume\Program Files\Mozilla Firefox\firefox.exe", attr=0x00000000, hRoot=(nil), sd=(nil)} ) ... 002d:trace:msgbox:MSGBOX_OnInit L"Executable 'C:\Program Files\Mozilla Firefox\firefox.exe' had the following unrecoverable error:\nUnable to open C:\Program Files\Mozilla Firefox\firefox.exe" --- snip ---
The virtualization layer/wrapper seemed to build the link object names for \Device\HarddiskVolume## devices incorrectly, omitting the number(s). Wine's mount manager was giving link info correctly away.
After dissecting/debugging of ThinApp layer I came to conclusion that a NULL terminator needs to be included in returned link object name (unicode) strings. For instance if the wrapper called NtQuerySymbolicLinkObject() it would copy the returned link name string using following (translated pseudo) code:
wchars_to_copy = (returned_length/sizeof(WCHAR))-1; <wchar copy routine>
Because Wine only returns the byte count of all wide characters - excluding (wide) NULL terminator - the app eats the last wide character away. E.g. "\Device\HarddiskVolume1" would become "\Device\HarddiskVolume"
I verified my findings and it helped Thinapped Firefox from comment #27 to start successfully.
Regards
http://bugs.winehq.org/show_bug.cgi?id=22429
Louis Lenders xerox_xerox2000@yahoo.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, patch URL| |http://www.thindownload.com | |/ Component|-unknown |ntdll
--- Comment #29 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2010-06-27 16:26:04 --- thanks very much for analysis! Shall i open a new bug for the thinapps that suffer from the bug like in in comment #2?
(added keywords download+patch, some thinapps can be downloaded from http://www.thindownload.com/, patch below makes app start, i guess we need tests for it diff --git a/dlls/ntdll/om.c b/dlls/ntdll/om.c index c5d9b84..8b05c79 100644 --- a/dlls/ntdll/om.c +++ b/dlls/ntdll/om.c @@ -572,7 +572,7 @@ NTSTATUS WINAPI NtOpenSymbolicLinkObject(OUT PHANDLE LinkHandle, IN ACCESS_MASK req->rootdir = wine_server_obj_handle( ObjectAttributes->RootDirectory ); if (ObjectAttributes->ObjectName) wine_server_add_data(req, ObjectAttributes->ObjectName->Buffer, - ObjectAttributes->ObjectName->Length); + ObjectAttributes->ObjectName->MaximumLength); ret = wine_server_call( req ); *LinkHandle = wine_server_ptr_handle( reply->handle ); } )
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #30 from adrian.li.100w@gmail.com 2010-06-28 20:27:40 --- sound like a fix ? @v@ i try do compile but not go :< ~ using Ubuntu 10.04 missing package for X ~ but don't which package >.< can anyone post a fixed wine plz?
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #31 from adrian.li.100w@gmail.com 2010-06-28 22:52:47 --- never mind
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #32 from uli hellweiss@gmx.de 2010-06-29 03:30:45 --- This is VERY cool. Thank you.
After applying the Patch from Comment #29 the Mozilla Firefox.exe works here too.
http://bugs.winehq.org/show_bug.cgi?id=22429
--- Comment #33 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2010-06-30 12:00:14 --- Looks like Alexandre committed a few fixes today, and the Mozilla Firefox now starts fine in current git. There remains still a problem with apps packaged with newer Thinapp version like in comment #20. Maybe we should close this one, and open a new one for those?
http://bugs.winehq.org/show_bug.cgi?id=22429
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #34 from Alexandre Julliard julliard@winehq.org 2010-06-30 12:13:59 --- Yes, please open new bugs for remaining problems.
http://bugs.winehq.org/show_bug.cgi?id=22429
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #35 from Alexandre Julliard julliard@winehq.org 2010-07-02 12:35:10 --- Closing bugs fixed in 1.2-rc6.
http://bugs.winehq.org/show_bug.cgi?id=22429
VHSripRTP@interia.eu changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |VHSripRTP@interia.eu
--- Comment #36 from VHSripRTP@interia.eu 2010-07-14 15:31:00 --- Now, it has now fired from the Audacity 1.26 (ThinApp 4.0.4)in 1.2-rc6 smoothly :) in Version ThinApp 4.50 but I wanted to try and fire up Firefox 3.63 involuntarily fires in general are not :/
http://bugs.winehq.org/show_bug.cgi?id=22429
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |obfuscation Fixed by SHA1| |6df7e7b94362f874a5b5a46cda0 | |eead8f517c651