http://bugs.winehq.org/show_bug.cgi?id=15980
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |wineserver
--- Comment #11 from Anastasius Focht focht@gmx.net --- Hello Erich,
--- quote --- Please try the attached patch, it is based on similar code for the default registry key DACL. --- quote ---
works well, the application runs now :)
Relevant part of trace log, with your patch applied:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Listen Rhapsody
WINEDEBUG=+tid,+seh,+relay,+ntdll,+server wine ./Rhapsody.exe >>log.txt 2>&1 ... 0009:Call KERNEL32.OpenProcess(001f0fff,00000000,00000008) ret=00498a1b 0009: open_process( pid=0008, access=001f0fff, attributes=00000000 ) 0009: open_process() = 0 { handle=00cc } 0009:Ret KERNEL32.OpenProcess() retval=000000cc ret=00498a1b 0009:Call advapi32.GetSecurityInfo(000000cc,00000006,00000005,0033fd10,00000000,0033fd0c,00000000,0033fd1c) ret=00498a4b 0009:trace:ntdll:NtQuerySecurityObject (0xcc,0x00000005,(nil),0x00000000,0x33fc54) 0009: get_security_object( handle=00cc, security_info=00000005 ) 0009: get_security_object() = 0 { sd_len=0000005c, sd={control=00000014,owner={S-1-5-32-544},group=<not present>,sacl={},dacl={{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=80000000,AceFlags=a,Sid={S-1-5-32-545}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1fffff,AceFlags=0,Sid={S-1-5-32-544}}}} } 0009:trace:ntdll:NtQuerySecurityObject (0xcc,0x00000005,0x14f4c0,0x0000005c,0x33fc50) 0009: get_security_object( handle=00cc, security_info=00000005 ) 0009: get_security_object() = 0 { sd_len=0000005c, sd={control=00000014,owner={S-1-5-32-544},group=<not present>,sacl={},dacl={{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=80000000,AceFlags=a,Sid={S-1-5-32-545}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1fffff,AceFlags=0,Sid={S-1-5-32-544}}}} } 0009:trace:ntdll:RtlGetDaclSecurityDescriptor (0x14f4c0,0x33fbfb,0x33fd0c,0x33fbfa) 0009:Ret advapi32.GetSecurityInfo() retval=00000000 ret=00498a4b 0009:Call advapi32.GetAclInformation(0014f4e4,0033fd20,0000000c,00000002) ret=00498a84 0009:trace:ntdll:RtlQueryInformationAcl pAcl=0x14f4e4 pAclInfo=0x33fd20 len=12, class=2 0009:Ret advapi32.GetAclInformation() retval=00000001 ret=00498a84 0009:Call KERNEL32.LocalAlloc(00000040,00000084) ret=00498aa2 0009:Ret KERNEL32.LocalAlloc() retval=0014f528 ret=00498aa2 0009:Call advapi32.InitializeAcl(0014f528,00000084,00000002) ret=00498abc 0009:trace:ntdll:RtlCreateAcl 0x14f528 0x00000084 0x00000002 0009:Ret advapi32.InitializeAcl() retval=00000001 ret=00498abc 0009:Call advapi32.AddAccessDeniedAce(0014f528,00000002,0000003a,0014f4d4) ret=00498ada 0009:trace:ntdll:RtlAddAccessDeniedAceEx (0x14f528,0x00000002,0x0000003a,0x14f4d4) 0009:trace:ntdll:RtlValidAcl (0x14f528) 0009:trace:ntdll:RtlLengthSid sid=0x14f4d4 0009:trace:ntdll:RtlLengthSid sid=0x14f4d4 0009:Ret advapi32.AddAccessDeniedAce() retval=00000001 ret=00498ada 0009:Call advapi32.GetAce(0014f4e4,00000000,0033fd14) ret=00498b09 0009:trace:ntdll:RtlGetAce (0x14f4e4,0,0x33fd14) 0009:Ret advapi32.GetAce() retval=00000001 ret=00498b09 0009:Call advapi32.AddAce(0014f528,00000002,ffffffff,0014f4ec,00000018) ret=00498b20 0009:Ret advapi32.AddAce() retval=00000001 ret=00498b20 0009:Call advapi32.GetAce(0014f4e4,00000001,0033fd14) ret=00498b09 0009:trace:ntdll:RtlGetAce (0x14f4e4,1,0x33fd14) 0009:Ret advapi32.GetAce() retval=00000001 ret=00498b09 0009:Call advapi32.AddAce(0014f528,00000002,ffffffff,0014f504,00000018) ret=00498b20 0009:Ret advapi32.AddAce() retval=00000001 ret=00498b20 0009:Call advapi32.InitializeSecurityDescriptor(0033fd2c,00000001) ret=00498b3a 0009:Ret advapi32.InitializeSecurityDescriptor() retval=00000001 ret=00498b3a 0009:Call advapi32.SetSecurityDescriptorDacl(0033fd2c,00000001,0014f528,00000000) ret=00498b63 0009:Ret advapi32.SetSecurityDescriptorDacl() retval=00000001 ret=00498b63 0009:Call user32.SetUserObjectSecurity(000000cc,0033fd18,0033fd2c) ret=00498ba0 0009:fixme:winstation:SetUserObjectSecurity (0xcc,0x33fd18,0x33fd2c),stub! 0009:Ret user32.SetUserObjectSecurity() retval=00000001 ret=00498ba0 ... --- snip ---
Regards