[Bug 21107] Portable RDP 6 client fails on startup, claiming "An error occurred. Try to reconnect." (MoleBox application virtualization scheme)
wine-bugs at winehq.org
wine-bugs at winehq.org
Thu Dec 26 12:53:55 CST 2013
http://bugs.winehq.org/show_bug.cgi?id=21107
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|-unknown |ntdll
--- Comment #5 from Anastasius Focht <focht at gmx.net> ---
Hello again,
actually it's expected that CreateActCtxW()/RtlCreateActivationContext() fails
at this place due to invalid 'lpSource' argument (file/path only exists as
mapping in memory).
The problem is what Wine returns as last error.
Application code in question (annotated):
--- snip ---
...
4D773B1B 8D85 A8FDFFFF LEA EAX,[EBP-258]
4D773B21 50 PUSH EAX
4D773B22 E8 26FEFFFF CALL 4D77394D ; sub calls CreateActCtxW()
4D773B27 8985 C8FDFFFF MOV DWORD PTR SS:[EBP-238],EAX
4D773B2D 83F8 FF CMP EAX,-1
4D773B30 75 2A JNE SHORT 4D773B5C
4D773B32 FF15 7C14714D CALL DWORD PTR DS:[4D71147C] ; GetLastError()
4D773B38 3D 14070000 CMP EAX,714 ; ERROR_RESOURCE_DATA_NOT_FOUND
4D773B3D 74 15 JE SHORT 4D773B54 ; good guy
4D773B3F 3D 15070000 CMP EAX,715 ; ERROR_RESOURCE_TYPE_NOT_FOUND
4D773B44 74 0E JE SHORT 4D773B54 ; good guy
4D773B46 3D 17070000 CMP EAX,717 ; ERROR_RESOURCE_LANG_NOT_FOUND
4D773B4B 74 07 JE SHORT 4D773B54 ; good guy
4D773B4D 3D 16070000 CMP EAX,716 ; ERROR_RESOURCE_NAME_NOT_FOUND
4D773B52 75 65 JNE SHORT 4D773BB9 ; bad guy
4D773B54 33C0 XOR EAX,EAX
...
--- snip ---
Debugger session:
--- snip ---
Wine-dbg>bt
Backtrace:
=>0 0x7bc32533 RtlCreateActivationContext+0x202(handle=<couldn't compute
location>, ptr=<couldn't compute location>)
[/home/focht/projects/wine/wine-git/dlls/ntdll/actctx.c:4522] in ntdll
(0x0033f708)
1 0x7b82723d CreateActCtxW+0x94(pActCtx=<couldn't compute location>)
[/home/focht/projects/wine/wine-git/dlls/kernel32/actctx.c:124] in kernel32
(0x0033f778)
2 0x4d773b27 in mbx at 29@341cb8.### (+0x63b26) (0x0033fa18)
3 0x4d773c05 in mbx at 29@341cb8.### (+0x63c04) (0x0033fa24)
4 0x4d773d07 in mbx at 29@341cb8.### (+0x63d06) (0x0033fa60)
5 0x4d776320 in mbx at 29@341cb8.### (+0x6631f) (0x0033fb0c)
6 0x4d779040 in mbx at 29@341cb8.### (+0x6903f) (0x0033fb24)
7 0x4d779773 in mbx at 29@341cb8.### (+0x69772) (0x0033fb48)
8 0x4d765308 in mbx at 29@341cb8.### (+0x55307) (0x0033fbb0)
9 0x4d767f6f in mbx at 29@341cb8.### (+0x57f6e) (0x0033fbc8)
10 0x4d777608 in mbx at 29@341cb8.### (+0x67607) (0x0033fbf0)
11 0x4d778e58 in mbx at 29@341cb8.### (+0x68e57) (0x0033fc00)
12 0x0101cad2 in mstsc (+0x1cad1) (0x0033fc70)
13 0x010195f1 in mstsc (+0x195f0) (0x0033fc90)
14 0x01019808 in mstsc (+0x19807) (0x0033fcd0)
15 0x01028a47 in mstsc (+0x28a46) (0x0033fcf8)
16 0x01034fa2 in mstsc (+0x34fa1) (0x0033fd54)
17 0x01035277 in mstsc (+0x35276) (0x0033fd80)
18 0x010354a4 in mstsc (+0x354a3) (0x0033fe10)
19 0x010aba12 in mstsc (+0xaba11) (0x010b9ffc)
Wine-dbg>p *pActCtx
{cbSize=0x20, dwFlags=0x88, lpSource="C:\PROGRAM FILES\RDP6 PORTABLE
CLIENT\mstscax.dll", wProcessorArchitecture=0xf7f0, wLangId=0x33,
lpAssemblyDirectory="?", lpResourceName=*** invalid address 0x3 ***,
lpApplicationName="", hModule=0x4d710000}
--- snip ---
Source:
http://source.winehq.org/git/wine.git/blob/cb0ef08839e515d7a9053923d27ef8899978a263:/dlls/ntdll/actctx.c#l4478
--- snip ---
4478 NTSTATUS WINAPI RtlCreateActivationContext( HANDLE *handle, const void
*ptr )
4479 {
4480 const ACTCTXW *pActCtx = ptr; /* FIXME: not the right structure */
4481 const WCHAR *directory = NULL;
4482 ACTIVATION_CONTEXT *actctx;
4483 UNICODE_STRING nameW;
4484 ULONG lang = 0;
4485 NTSTATUS status = STATUS_NO_MEMORY;
4486 HANDLE file = 0;
4487 struct actctx_loader acl;
...
4521 nameW.Buffer = NULL;
4522 if (pActCtx->lpSource)
4523 {
4524 if (!RtlDosPathNameToNtPathName_U(pActCtx->lpSource, &nameW, NULL,
NULL))
4525 {
4526 status = STATUS_NO_SUCH_FILE;
4527 goto error;
4528 }
4529 status = open_nt_file( &file, &nameW );
4530 if (status)
4531 {
4532 RtlFreeUnicodeString( &nameW );
4533 goto error;
4534 }
4535 }
4582 error:
4583 if (file) NtClose( file );
4584 actctx_release( actctx );
4585 return status;
4586 }
--- snip ---
open_nt_file() -> NtOpenFile() return status=0xc0000034 ->
STATUS_OBJECT_NAME_NOT_FOUND
As shown in application code snippet this is not expected.
Any ERROR_RESOURCE_xxx last error will be ok which means that
ntdll.RtlCreateActivationContext() must return one of:
http://source.winehq.org/git/wine.git/blob/38ca35fe573c6d79cec49a580c1544fd992f498e:/include/ntstatus.h#l321
--- snip ---
321 #define STATUS_RESOURCE_DATA_NOT_FOUND ((NTSTATUS) 0xC0000089)
322 #define STATUS_RESOURCE_TYPE_NOT_FOUND ((NTSTATUS) 0xC000008A)
323 #define STATUS_RESOURCE_NAME_NOT_FOUND ((NTSTATUS) 0xC000008B)
--- snip ---
With that part fixed the RDP login gui is shown.
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