http://bugs.winehq.org/show_bug.cgi?id=18426
Summary: VMware Player install - not enough disk space Product: Wine Version: 1.1.21 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: Masternoob@gmx.at
i tried to install VmWare Player 2.5.2 but at the beginning the installer claims that there is not enough disk space...but there is clearly enough on my computer
im running ubuntu 9.04
vmware player can be downloaded here for free: http://www.vmware.com/download/player/download.html
http://bugs.winehq.org/show_bug.cgi?id=18426
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer
http://bugs.winehq.org/show_bug.cgi?id=18426
Niko Sandschneider nsandschn@gmx.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nsandschn@gmx.de
--- Comment #1 from Niko Sandschneider nsandschn@gmx.de 2010-01-09 05:15:36 --- Confirming with wine 1.1.36
http://bugs.winehq.org/show_bug.cgi?id=18426
Andrew Nguyen arethusa26@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|-unknown |advapi32 Ever Confirmed|0 |1 Severity|enhancement |normal
--- Comment #2 from Andrew Nguyen arethusa26@gmail.com 2010-01-10 16:33:11 --- I can also confirm the problem in wine-1.1.36. The problem appears to be in advapi32:
0009:Call advapi32.OpenThreadToken(fffffffe,00000008,00000001,0032cb30) ret=0041ab83 0009:Ret advapi32.OpenThreadToken() retval=00000001 ret=0041ab83 ... 0009:Call advapi32.GetFileSecurityW(00624c90 L"C:\windows\temp\",00000007,00624c10,00000074,0032cb28) ret=0041eb2c 0009:Ret advapi32.GetFileSecurityW() retval=00000001 ret=0041eb2c ... 0009:Call advapi32.MapGenericMask(0032cb24,0032cb08) ret=0041ac42 0009:Ret advapi32.MapGenericMask() retval=00120116 ret=0041ac42 0009:Call advapi32.AccessCheck(00624c10,00000048,00120116,0032cb08,0032caf4,0032cb20,0032cb18,0032cb1c) ret=0041ac6c 0009:Ret advapi32.AccessCheck() retval=00000000 ret=0041ac6c 0009:Call KERNEL32.GetLastError() ret=0041ac72 0009:Ret KERNEL32.GetLastError() retval=000003e6 ret=0041ac72 ...
Hacking AccessCheck to unconditionally report success allows the VMware Player install to proceed.
http://bugs.winehq.org/show_bug.cgi?id=18426
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|advapi32 |-unknown
--- Comment #3 from Dmitry Timoshkov dmitry@codeweavers.com 2010-01-11 14:15:04 --- That doesn't mean that the problem is in advapi32.
http://bugs.winehq.org/show_bug.cgi?id=18426
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Alias|vmware |
http://bugs.winehq.org/show_bug.cgi?id=18426
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #4 from Anastasius Focht focht@gmx.net 2010-01-11 16:05:12 --- Hello,
WINEDEBUG=+tid,+ntdll,+server is your friend. Have a close look at security descriptor control word and the fields that are actually present ;-)
Regards
http://bugs.winehq.org/show_bug.cgi?id=18426
--- Comment #5 from Anastasius Focht focht@gmx.net 2010-01-17 09:29:47 --- Hello,
looks like a problem of propagating NULL fields (SACL/DACL) when the security descriptor is in self relative format.
--- quote --- ... 0009:trace:ntdll:NtQuerySecurityObject (0x58,0x00000007,0x624f08,0x00000074,0x32cafc) 0009: get_security_object( handle=0058, security_info=00000007 ) 0009: get_security_object() = 0 { sd_len=00000074, sd={control=00000014,owner={S-1-5-7},group={S-1-5-32-544},sacl={},dacl={{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01ff,AceFlags=0,Sid={S-1-5-18}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1e00a9,AceFlags=0,Sid={S-1-5-7}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1200a9,AceFlags=0,Sid={S-1-1-0}}}} } 0009: close_handle( handle=0058 ) 0009: close_handle() = 0 0009:trace:ntdll:NtAccessCheck (0x624f08, 0x48, 00120116, 0x32cadc, 0x32cac8, 0x32caf4, 0x32caec, 0x32ca84) 0009:trace:ntdll:RtlGetControlSecurityDescriptor (0x624f08,0x32ca0a,0x32ca0c) 0009:trace:ntdll:RtlLengthSid sid=0x624f1c 0009:trace:ntdll:RtlLengthSid sid=0x624f28 0009:trace:ntdll:RtlGetSaclSecurityDescriptor (0x624f08,0x32ca12,0x32ca18,0x32ca13) 0009:trace:ntdll:RtlGetDaclSecurityDescriptor (0x624f08,0x32ca12,0x32ca14,0x32ca13) 0009: access_check( handle=0048, desired_access=00120116, mapping_read=00120089, mapping_write=00120116, mapping_execute=001200a0, mapping_all=001201bf, sd={control=00000014,owner={S-1-5-7},group={S-1-5-32-544},sacl={,dacl={{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01ff,AceFlags=0,Sid={S-1-5-18}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1e00a9,AceFlags=0,Sid={S-1-5-7}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1200a9,AceFlags=0,Sid={S-1-1-0}}}} ) 0009: access_check() = ACCESS_VIOLATION { access_granted=00000000, access_status=00000000, privileges_len=00000000, privileges={} } --- quote ---
NtQuerySecurityObject():
sd_len=00000074, sd={control=00000014,owner={S-1-5-7},group={S-1-5-32-544},sacl={},dacl=... (ACEs present)
The resulting security descriptor is returned in self relative format:
{Revision=1, Sbz1=0, Control=32788, Owner=0x14, Group=0x20, Sacl=(nil), Dacl=0x30}
control=0x8014 (SE_SELF_RELATIVE | SE_SACL_PRESENT | SE_DACL_PRESENT )
ntdll/sec.c:NtAccessCheck() collects various fields for transfer to wineserver's token access_check():
--- snip dlls/ntdll/sec.c --- NTSTATUS WINAPI NtAccessCheck( PSECURITY_DESCRIPTOR SecurityDescriptor, HANDLE ClientToken, ACCESS_MASK DesiredAccess, PGENERIC_MAPPING GenericMapping, PPRIVILEGE_SET PrivilegeSet, PULONG ReturnLength, PULONG GrantedAccess, NTSTATUS *AccessStatus) { ... RtlGetSaclSecurityDescriptor( SecurityDescriptor, &present, &sacl, &defaulted ); sd.sacl_len = ((present && sacl) ? acl_bytesInUse(sacl) : 0); ... } --- snip dlls/ntdll/sec.c ---
RtlGetSaclSecurityDescriptor() looks at the control flags and propagates "present", along with pointer to data:
--- snip dlls/ntdll/sec.c --- NTSTATUS WINAPI RtlGetSaclSecurityDescriptor( IN PSECURITY_DESCRIPTOR pSecurityDescriptor, OUT PBOOLEAN lpbSaclPresent, OUT PACL *pSacl, OUT PBOOLEAN lpbSaclDefaulted) { SECURITY_DESCRIPTOR* lpsd=pSecurityDescriptor;
TRACE("(%p,%p,%p,%p)\n", pSecurityDescriptor, lpbSaclPresent, pSacl, lpbSaclDefaulted);
if (lpsd->Revision != SECURITY_DESCRIPTOR_REVISION) return STATUS_UNKNOWN_REVISION;
if ( (*lpbSaclPresent = (SE_SACL_PRESENT & lpsd->Control) ? 1 : 0) ) { if (SE_SELF_RELATIVE & lpsd->Control) *pSacl = (PACL)SELF_RELATIVE_FIELD( lpsd, Sacl ); else *pSacl = lpsd->Sacl;
*lpbSaclDefaulted = (( SE_SACL_DEFAULTED & lpsd->Control ) ? 1 : 0);
TRACE("*pSacl=%p\n", *pSacl); } return STATUS_SUCCESS; } --- snip dlls/ntdll/sec.c ---
The problem is the self relative case with control flags set but not data present (corresponds to NULL DACL/SACL).
--- snip dlls/ntdll/sec.c --- #define SELF_RELATIVE_FIELD(sd,field) ((BYTE *)(sd) + ((SECURITY_DESCRIPTOR_RELATIVE *)(sd))->field) ... *pSacl = (PACL)SELF_RELATIVE_FIELD( lpsd, Sacl ); --- snip dlls/ntdll/sec.c ---
The returned pointer will be wrong, leading to later (mis)interpreted (ACL) data. You need to check for zero offsets (= NULL field case) because a valid self relative field offset is never 0 (SD header present).
You might want to check other code locations in ntdll/sec.c that have similar problem.
Regards
http://bugs.winehq.org/show_bug.cgi?id=18426
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |http://www.vmware.com/downl | |oad/player/download.html Component|-unknown |ntdll
--- Comment #6 from Nikolay Sivov bunglehead@gmail.com 2010-01-17 09:34:48 --- Thanks, Anastasius. Changing component to ntdll.
http://bugs.winehq.org/show_bug.cgi?id=18426
Andrew Nguyen arethusa26@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |niels.emmersen@gmail.com
--- Comment #7 from Andrew Nguyen arethusa26@gmail.com 2010-02-01 21:39:01 --- *** Bug 12931 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=18426
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com Target Milestone|--- |1.2.0
--- Comment #8 from Dan Kegel dank@kegel.com 2010-02-01 22:24:54 --- Affects multiple apps, good analysis -> nominating for 1.2
http://bugs.winehq.org/show_bug.cgi?id=18426
--- Comment #9 from Anastasius Focht focht@gmx.net 2010-02-17 14:25:21 --- Hello,
this also affects TecDoc 2010 DVD electronic spare parts catalogue.
--- snip --- ... wine: Unhandled page fault on read access to 0x012f0000 at address 0x680b2546 (thread 001d), starting debugger... Unhandled exception: page fault on read access to 0x012f0000 in 32-bit code (0x680b2546). ... 00000019 (D) C:\TECDOC_CD\1_2010\db\tbmux32.exe 0000001d 0 <== 0000001b 0 0000001a 0 ... Backtrace: =>0 0x680b2546 (0x012eddd4) 1 0x7bc79a64 NtCreateMutant+0xae(MutantHandle=0x12eded4, access=0x1f0001, attr=0x12edeb4, InitialOwner=0) [/opt/wine/wine-git/dlls/ntdll/sync.c:429] in ntdll (0x012ede94) 2 0x7b869dc8 CreateMutexExW+0xb2(sa=0x12ee16c, name="Global\TBSEM ( TECDOC_C ) = (Key=32769, Ind=0)", flags=0, access=0x1f0001) [/opt/wine/wine-git/dlls/kernel32/sync.c:653] in kernel32 (0x012edee4) 3 0x7b869d0c CreateMutexExA+0xb6(sa=0x12ee16c, name="Global\TBSEM ( TECDOC_C ) = (Key=32769, Ind=0)", flags=0, access=0x1f0001) [/opt/wine/wine-git/dlls/kernel32/sync.c:626] in kernel32 (0x012ee124) 4 0x7b869c08 CreateMutexA+0x3a(sa=0x12ee16c, owner=0, name="Global\TBSEM ( TECDOC_C ) = (Key=32769, Ind=0)") [/opt/wine/wine-git/dlls/kernel32/sync.c:599] in kernel32 (0x012ee144) 5 0x0041a2a3 in tbmux32 (+0x1a2a3) (0x682b0bfb) 6 0x458d28ec (0x83e58955) ... --- snip ---
--- snip --- ... 000f:Call KERNEL32.CreateProcessW(00000000,00118330 L"C:\TECDOC_CD\1_2010\db\tbmux32.exe",00000000,00000000,00000000,00000000,00000000,00000000,0033fd2c,0033fd70) ret=68331d67 ... 000f:trace:process:CreateProcessW starting L"C:\TECDOC_CD\1_2010\db\tbmux32.exe" as Win32 binary (0x400000-0x473000) ... 000f:trace:process:CreateProcessW started process pid 0019 tid 001a ... 001d:Call advapi32.InitializeSecurityDescriptor(012ee2bc,00000001) ret=00419b06 001d:Ret advapi32.InitializeSecurityDescriptor() retval=00000001 ret=00419b06 001d:Call advapi32.InitializeAcl(012ede8c,00000400,00000002) ret=00419b28 001d:trace:ntdll:RtlCreateAcl 0x12ede8c 0x00000400 0x00000002 001d:Ret advapi32.InitializeAcl() retval=00000001 ret=00419b28 001d:Call advapi32.InitializeSid(012eda8c,012eda84,00000001) ret=00419b47 001d:Ret advapi32.InitializeSid() retval=00000001 ret=00419b47 001d:Call advapi32.GetSidSubAuthority(012eda8c,00000000) ret=00419b60 001d:Ret advapi32.GetSidSubAuthority() retval=012eda94 ret=00419b60 001d:Call advapi32.AddAccessAllowedAce(012ede8c,00000002,10000000,012eda8c) ret=00419b7c 001d:trace:ntdll:RtlAddAccessAllowedAceEx (0x12ede8c,0x00000002,0x10000000,0x12eda8c) 001d:trace:ntdll:RtlValidAcl (0x12ede8c) 001d:trace:ntdll:RtlLengthSid sid=0x12eda8c 001d:trace:ntdll:RtlLengthSid sid=0x12eda8c 001d:Ret advapi32.AddAccessAllowedAce() retval=00000001 ret=00419b7c 001d:Call advapi32.SetSecurityDescriptorDacl(012ee2bc,00000001,012ede8c,00000000) ret=00419b9e 001d:Ret advapi32.SetSecurityDescriptorDacl() retval=00000001 ret=00419b9e 001d:Call KERNEL32.CreateMutexA(012ee2b0,00000000,012ee2d0 "Global\TBSEM ( TECDOC_C ) = (Key=808607544, Ind=0)") ret=0041a2a3 001d:trace:ntdll:RtlGetSaclSecurityDescriptor (0x12ee2bc,0x12ede70,0x12ede74,0x12ede6f) 001d:trace:ntdll:RtlGetDaclSecurityDescriptor (0x12ee2bc,0x12ede71,0x12ede78,0x12ede6f) 001d: create_mutex( access=001f0001, attributes=00000080, owned=0, objattr={rootdir=0018,sd={control=00000004,owner=<not present>,group=<not present>,sacl={},dacl={{AceType=unknown<156>,AceFlags=e2},{AceType=unknown<46>,AceFlags=1}},name=L"Global\TBSEM ( TECDOC_C ) = (Key=808607544, Ind=0)"} ) 001d: create_mutex() = INVALID_SECURITY_DESCR { handle=0000 } --- snip ---
Regards
http://bugs.winehq.org/show_bug.cgi?id=18426
--- Comment #10 from Anastasius Focht focht@gmx.net 2010-02-18 13:48:44 --- Hello,
this bug is fixed by commit 8543c32442d79c33b59b8f6a96c849f6ba5f13df
Tested with VMware-Player-2.5.3-185404.exe
--- snip --- ... 0009:trace:ntdll:NtQuerySecurityObject (0x50,0x00000007,0x513548,0x00000074,0x32cafc) 0009: get_security_object( handle=0050, security_info=00000007 ) 0009: get_security_object() = 0 { sd_len=00000074, sd={control=00000014,owner={S-1-5-4},group={S-1-5-32-544},sacl={},dacl={{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01ff,AceFlags=0,Sid={S-1-5-18}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01bf,AceFlags=0,Sid={S-1-5-4}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1200a9,AceFlags=0,Sid={S-1-1-0}}}} } 0009: close_handle( handle=0050 ) 0009: close_handle() = 0 0009:trace:ntdll:NtAccessCheck (0x513548, 0x40, 00120116, 0x32cadc, 0x32cac8, 0x32caf4, 0x32caec, 0x32ca84) 0009:trace:ntdll:RtlGetControlSecurityDescriptor (0x513548,0x32ca0a,0x32ca0c) 0009:trace:ntdll:RtlLengthSid sid=0x51355c 0009:trace:ntdll:RtlLengthSid sid=0x513568 0009:trace:ntdll:RtlGetSaclSecurityDescriptor (0x513548,0x32ca12,0x32ca18,0x32ca13) 0009:trace:ntdll:RtlGetDaclSecurityDescriptor (0x513548,0x32ca12,0x32ca14,0x32ca13) 0009: access_check( handle=0040, desired_access=00120116, mapping_read=00120089, mapping_write=00120116, mapping_execute=001200a0, mapping_all=001201bf, sd={control=00000014,owner={S-1-5-4},group={S-1-5-32-544},sacl={},dacl={{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01ff,AceFlags=0,Sid={S-1-5-18}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01bf,AceFlags=0,Sid={S-1-5-4}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1200a9,AceFlags=0,Sid={S-1-1-0}}}} ) 0009: access_check() = 0 { access_granted=00120116, access_status=00000000, privileges_len=00000000, privileges={} } ... --- snip ---
Though the installer still fails in the end due to netapi32.NetLocalGroupAdd being a stub (used to create local VMware group and user account).
Regards
http://bugs.winehq.org/show_bug.cgi?id=18426
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #11 from Austin English austinenglish@gmail.com 2010-02-18 14:40:49 --- Fixed.
http://bugs.winehq.org/show_bug.cgi?id=18426
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Alexandre Julliard julliard@winehq.org 2010-02-19 12:32:18 --- Closing bugs fixed in 1.1.39.
http://bugs.winehq.org/show_bug.cgi?id=18426
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |8543c32442d79c33b59b8f6a96c | |849f6ba5f13df