http://bugs.winehq.org/show_bug.cgi?id=6845
dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|wine-msi |wine-misc
------- Additional Comments From dank@kegel.com 2007-25-04 18:09 ------- Today the app wouldn't install at all; it failed early with
0009:Call advapi32.AccessCheck(00521aa0,00000074,00000180,0034e5e4,0034e6fc,0034e744,0034e718,0034e74c) ret=100065ff trace:ntdll:NtAccessCheck (0x521aa0, 0x74, 00000180, 0x34e5e4, 0x34e6fc, 0x34e744, 0x34e718(2147336192), 0x34d4c8(2130701454)) trace:ntdll:RtlGetControlSecurityDescriptor (0x521aa0,0x34d478,0x34d464) trace:ntdll:RtlLengthSid sid=0x521ab4 trace:ntdll:RtlLengthSid sid=0x521ac4 trace:ntdll:RtlGetSaclSecurityDescriptor (0x521aa0,0x34d47a,(nil),0x34d47b) trace:ntdll:RtlGetDaclSecurityDescriptor (0x521aa0,0x34d47a,0x34d468,0x34d47b) 0009: access_check( handle=0x74, desired_access=00000180, mapping_read=00000000, mapping_write=00000000, mapping_execute=00000000, mapping_all=00000000, sd={control=00000004,owner={S-1-5-32-544},group={S-1-5-18},sacl={},dacl={{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=f003f,AceFlags=2,Sid={S-1-5-18}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=f003f,AceFlags=2,Sid={S-1-5-32-544}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=20019,AceFlags=2,Sid={S-1-1-0}}}} ) 0009: access_check() = 0 { access_granted=00000000, access_status=c0000022, privileges_len=00000000, privileges={} } 0009:Ret advapi32.AccessCheck() retval=00000001 ret=100065ff 0009:Call kernel32.GetLastError() ret=10012e69 0009:Ret kernel32.GetLastError() retval=00000005 ret=10012e69 0009:Call kernel32.lstrcpyA(0034d060,0034d280 "The file 'C:\windows\temp\GLF230c.tmp' could not be opened. Please check that your disk is not full and that you have access to the destination directory.") ret=1000c5a7
After scratching my head a while, I got the impression that NtAccessCheck was not properly setting *AccessStatus, and I wrote the attached patch that made AccessCheck act more like MSDN in that regard. But it breaks the advapi conformance tests, so it must be wrong.