http://bugs.winehq.org/show_bug.cgi?id=33576
Bug #: 33576 Summary: Paint Tool SAI won't start Product: Wine Version: 1.5.30 Platform: arm64 URL: http://www.systemax.jp/bin/sai-1.1.0-ful-en.exe OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: kernel32 AssignedTo: wine-bugs@winehq.org ReportedBy: liquitsnake@gmx.net Classification: Unclassified Regression SHA1: 6e0d43811b5e407a77fde3a64ead5f3700ea68a9
The program fails to start, giving no further console log on the standard debug channels than it would otherwise. This is a regression introduced in 1.5.14. git bisect reveals:
commit 6e0d43811b5e407a77fde3a64ead5f3700ea68a9 Author: Erich Hoover ehoover@mines.edu Date: Wed Sep 19 08:03:46 2012 -0600
kernel32: Report FILE_PERSISTENT_ACLS flag for NTFS volumes.
I know that this commit seems unlikely, but I can confirm that the program works again once it is reverted. I am not using NTFS for these tests, just ext4 and tmpfs.
http://bugs.winehq.org/show_bug.cgi?id=33576
haarp liquitsnake@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression CC| |ehoover@mines.edu
http://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #1 from haarp liquitsnake@gmx.net 2013-05-12 15:59:26 CDT --- The url should provide an usable demo version.
http://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #2 from Erich Hoover ehoover@mines.edu 2013-05-12 17:40:42 CDT --- Interesting... A quick peek at this program shows that it generates a log file that says: Error: Directory not have access rights. (1) [C:\users\Public\Application Data\SYSTEMAX Software Development\SAI] right after calls to GetNamedSecurityInfo. So, it would appear that there's something going wrong with the default file permissions. I'll poke around a little and see what I can find.
http://bugs.winehq.org/show_bug.cgi?id=33576
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |nerv@dawncrow.de Platform|arm64 |Other Ever Confirmed|0 |1
--- Comment #3 from André H. nerv@dawncrow.de 2013-05-12 17:53:36 CDT --- Setting Platform to "Other", i guess you are not on arm64, maybe you mean x86_64 (in case you're on a 64-bit Linux)? Confirming as of comment #2
http://bugs.winehq.org/show_bug.cgi?id=33576
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download CC| |focht@gmx.net Component|kernel32 |wineserver Platform|Other |x86-64
--- Comment #4 from Anastasius Focht focht@gmx.net 2013-05-12 17:56:08 CDT --- Hello folks,
confirming too. The issue you are seeing is indeed the result of the newly added FILE_PERSISTENT_ACLS flag, the app hits a different code path now. NTFS is the 'default' case for GetVolumeInformationW() hence any newly added flag might have an impact.
It seems wineserver doesn't support returning proper ACE control flags (inheritance) for the file/directory object yet.
The app adds "S-1-1-0" (world/everyone) ACE to directory object and verifies by reading object security again.
set -> {AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01ff,AceFlags=3,Sid={S-1-1-0}}
--- snip --- $ WINEDEBUG=+tid,+seh,+relay,+advapi,+server wine ./sai.exe ... 0009:Call KERNEL32.GetVolumeInformationA(0032f0c4 "C:\",00000000,00000000,00000000,0032f0c0,0032f108,00000000,00000000) ret=0045e296 ... 0009:Ret KERNEL32.GetVolumeInformationA() retval=00000001 ret=0045e296 0009:Call KERNEL32.GetFileAttributesA(008ba000 "C:\users\Public\Application Data\SYSTEMAX Software Development\SAI") ret=0045e3fb 0009:Ret KERNEL32.GetFileAttributesA() retval=00000010 ret=0045e3fb 0009:Call advapi32.ConvertStringSidToSidA(004ce138,0032f0c8) ret=0045e579 0009:trace:advapi:ConvertStringSidToSidA "S-1-1-0", 0x32f0c8 0009:trace:advapi:ConvertStringSidToSidW L"S-1-1-0", 0x32f0c8 0009:trace:advapi:ParseStringSidToSid L"S-1-1-0", (nil), 0x32ef84 0009:trace:advapi:ParseStringSidToSid only size requested, returning TRUE with 12 0009:trace:advapi:ParseStringSidToSid L"S-1-1-0", 0x13fab0, 0x32ef84 0009:trace:advapi:ParseStringSidToSid returning TRUE 0009:Ret advapi32.ConvertStringSidToSidA() retval=00000001 ret=0045e579 0009:Call advapi32.GetLengthSid(0013fab0) ret=0045e43c 0009:Ret advapi32.GetLengthSid() retval=0000000c ret=0045e43c 0009:Call KERNEL32.LocalAlloc(00000000,0000001c) ret=0045e44a 0009:Ret KERNEL32.LocalAlloc() retval=0013fac8 ret=0045e44a 0009:Call advapi32.InitializeAcl(0013fac8,0000001c,00000002) ret=0045e473 0009:Ret advapi32.InitializeAcl() retval=00000001 ret=0045e473 0009:Call advapi32.AddAccessAllowedAceEx(0013fac8,00000002,00000003,001f01ff,0013fab0) ret=0045e4a0 0009:Ret advapi32.AddAccessAllowedAceEx() retval=00000001 ret=0045e4a0 0009:Call advapi32.InitializeSecurityDescriptor(0032f0e8,00000001) ret=0045e4ca 0009:Ret advapi32.InitializeSecurityDescriptor() retval=00000001 ret=0045e4ca 0009:Call advapi32.SetSecurityDescriptorDacl(0032f0e8,00000001,0013fac8,00000000) ret=0045e4f4 0009:Ret advapi32.SetSecurityDescriptorDacl() retval=00000001 ret=0045e4f4 0009:Call advapi32.SetFileSecurityA(008ba000 "C:\users\Public\Application Data\SYSTEMAX Software Development\SAI",00000004,0032f0e8) ret=0045e520 0009:trace:advapi:SetFileSecurityW (L"C:\users\Public\Application Data\SYSTEMAX Software Development\SAI", 0x4, 0x32f0e8) 0009: create_file( access=00040000, attributes=00000040, sharing=00000007, create=1, options=00004020, attrs=00000000, objattr={rootdir=0000,sd={},name=L""}, filename="/home/focht/.wine/dosdevices/c:/users/Public/Application Data/SYSTEMAX Software Development/SAI" ) 0009: create_file() = 0 { handle=006c } 0009: set_security_object( handle=006c, security_info=00000004, sd={control=00000004,owner=<not present>,group=<not present>,sacl={},dacl={{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01ff,AceFlags=3,Sid={S-1-1-0}}}} ) 0009: set_security_object() = 0 0009: close_handle( handle=006c ) 0009: close_handle() = 0 0009:Ret advapi32.SetFileSecurityA() retval=00000001 ret=0045e520 --- snip ---
reading back:
--- snip --- 0009:Call KERNEL32.GetVolumeInformationA(0032f1d8 "C:\",00000000,00000000,00000000,0032f1d4,0032f21c,00000000,00000000) ret=0045e296 ... 0009:Ret KERNEL32.GetVolumeInformationA() retval=00000001 ret=0045e296 0009:Call KERNEL32.GetFileAttributesA(008ba000 "C:\users\Public\Application Data\SYSTEMAX Software Development\SAI") ret=0045e5aa 0009:Ret KERNEL32.GetFileAttributesA() retval=00000010 ret=0045e5aa 0009:Call advapi32.ConvertStringSidToSidA(004ce138,0032f1d8) ret=0045e579 0009:trace:advapi:ConvertStringSidToSidA "S-1-1-0", 0x32f1d8 0009:trace:advapi:ConvertStringSidToSidW L"S-1-1-0", 0x32f1d8 0009:trace:advapi:ParseStringSidToSid L"S-1-1-0", (nil), 0x32f094 0009:trace:advapi:ParseStringSidToSid only size requested, returning TRUE with 12 0009:trace:advapi:ParseStringSidToSid L"S-1-1-0", 0x13fab0, 0x32f094 0009:trace:advapi:ParseStringSidToSid returning TRUE 0009:Ret advapi32.ConvertStringSidToSidA() retval=00000001 ret=0045e579 0009:Call advapi32.GetNamedSecurityInfoA(008ba000 "C:\users\Public\Application Data\SYSTEMAX Software Development\SAI",00000001,00000004,00000000,00000000,0032f1f0,00000000,0032f1fc) ret=0045e5fd 0009:trace:advapi:GetNamedSecurityInfoA C:\users\Public\Application Data\SYSTEMAX Software Development\SAI 1 4 (nil) (nil) 0x32f1f0 (nil) 0x32f1fc 0009:trace:advapi:GetNamedSecurityInfoW L"C:\users\Public\Application Data\SYSTEMAX Software Development\SAI" 1 4 (nil) (nil) 0x32f1f0 (nil) 0x32f1fc 0009: create_file( access=00020000, attributes=00000040, sharing=00000007, create=1, options=00004000, attrs=02000000, objattr={rootdir=0000,sd={},name=L""}, filename="/home/focht/.wine/dosdevices/c:/users/Public/Application Data/SYSTEMAX Software Development/SAI" ) 0009: create_file() = 0 { handle=006c } 0009: get_security_object( handle=006c, security_info=00000004 ) 0009: get_security_object() = 0 { sd_len=00000068, sd={control=00000014,owner=<not present>,group=<not present>,sacl={},dacl={{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01ff,AceFlags=0,Sid={S-1-5-18}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01ff,AceFlags=0,Sid={S-1-5-21-0-0-0-1000}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1301ff,AceFlags=0,Sid={S-1-1-0}}}} } 0009: get_security_object( handle=006c, security_info=00000004 ) 0009: get_security_object() = 0 { sd_len=00000068, sd={control=00000014,owner=<not present>,group=<not present>,sacl={},dacl={{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01ff,AceFlags=0,Sid={S-1-5-18}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1f01ff,AceFlags=0,Sid={S-1-5-21-0-0-0-1000}},{AceType=ACCESS_ALLOWED_ACE_TYPE,Mask=1301ff,AceFlags=0,Sid={S-1-1-0}}}} } 0009: close_handle( handle=006c ) 0009: close_handle() = 0 0009:Ret advapi32.GetNamedSecurityInfoA() retval=00000000 ret=0045e5fd 0009:Call advapi32.GetAclInformation(0013e6ec,0032f204,0000000c,00000002) ret=0045e65e 0009:Ret advapi32.GetAclInformation() retval=00000001 ret=0045e65e 0009:Call advapi32.GetAce(0013e6ec,00000000,0032f1f4) ret=0045e6b8 0009:Ret advapi32.GetAce() retval=00000001 ret=0045e6b8 0009:Call advapi32.EqualSid(0013fab0,0013e6fc) ret=0045e6cb 0009:Ret advapi32.EqualSid() retval=00000000 ret=0045e6cb 0009:Call advapi32.GetAce(0013e6ec,00000001,0032f1f4) ret=0045e6b8 0009:Ret advapi32.GetAce() retval=00000001 ret=0045e6b8 0009:Call advapi32.EqualSid(0013fab0,0013e710) ret=0045e6cb 0009:Ret advapi32.EqualSid() retval=00000000 ret=0045e6cb 0009:Call advapi32.GetAce(0013e6ec,00000002,0032f1f4) ret=0045e6b8 0009:Ret advapi32.GetAce() retval=00000001 ret=0045e6b8 0009:Call advapi32.EqualSid(0013fab0,0013e734) ret=0045e6cb 0009:Ret advapi32.EqualSid() retval=00000001 ret=0045e6cb 0009:Call KERNEL32.LocalFree(0013fab0) ret=0045e754 0009:Ret KERNEL32.LocalFree() retval=00000000 ret=0045e754 0009:Call KERNEL32.LocalFree(0013e6d8) ret=0045e768 0009:Ret KERNEL32.LocalFree() retval=00000000 ret=0045e768 0009:Call msvcrt._vsnprintf(0032ee1c,000003ff,004dec98 "Error: Directory not have access rights. (%d) [%s]\n",0032f224) ret=0047d682 0009:Ret msvcrt._vsnprintf() retval=00000072 ret=0047d682 --- snip ---
The last EqualSid() call is a match (+server trace on get_security_object gives us a nice list). What is not visible and only gathered through debugging is the mismatch on ACE control flags field hence the failure.
In: AceFlags=3 (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE) Out: AceFlags=0
Grep wineserver security descriptor code for file object with "Header.AceFlags =". For registry objects it's supported (and returned) but not for file objects. See test_GetNamedSecurityInfoA security function test(s) for file/directory object, AceFlags is always tested == 0.
Regards
http://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #5 from Erich Hoover ehoover@mines.edu 2013-05-12 18:23:53 CDT --- Created attachment 44455 --> http://bugs.winehq.org/attachment.cgi?id=44455 Change default world SID to satisfy Paint Tool SAI
Ok, a little bit of poking around (working backward from a mask and flags of 0xffffffff) I've found that the attached patch will work around the issue. However, the real solution to this problem is to have full ACL support - for now you can get those patches from my website: [1/3] http://www.compholio.com/wine-compholio/download.php?file=0004-server-Create... [2/3] http://www.compholio.com/wine-compholio/download.php?file=0005-server-Store-... [3/3] http://www.compholio.com/wine-compholio/download.php?file=0006-ntdll-Inherit...
So, is it worth submitting this workaround?
http://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #6 from haarp liquitsnake@gmx.net 2013-05-13 01:23:05 CDT --- (In reply to comment #3)
Setting Platform to "Other", i guess you are not on arm64, maybe you mean x86_64 (in case you're on a 64-bit Linux)? Confirming as of comment #2
Oops. You are correct. I mistook it for 'amd64' in my sleep-deprived state.
(In reply to comment #5)
Created attachment 44455 [details] Change default world SID to satisfy Paint Tool SAI
Ok, a little bit of poking around (working backward from a mask and flags of 0xffffffff) I've found that the attached patch will work around the issue. However, the real solution to this problem is to have full ACL support - for now you can get those patches from my website: [1/3] http://www.compholio.com/wine-compholio/download.php?file=0004-server-Create... [2/3] http://www.compholio.com/wine-compholio/download.php?file=0005-server-Store-... [3/3] http://www.compholio.com/wine-compholio/download.php?file=0006-ntdll-Inherit...
So, is it worth submitting this workaround?
I can confirm that the workaround solves SAI not starting, but your full ACL patches don't seem to work. They have no effect on SAI for me.
http://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #7 from Erich Hoover erich.e.hoover@gmail.com 2013-05-13 07:21:36 CDT --- (In reply to comment #6)
... I can confirm that the workaround solves SAI not starting, but your full ACL patches don't seem to work. They have no effect on SAI for me.
The full patches require extended file system attributes (for ext3 you need to turn on a special option for this, for ext4 it's enabled by default). Also, you probably need to re-install the program so that the proper ACLs get stored. I'm pretty sure that I properly tested that this program works with the full patches, but I know that I did not try it with an existing install.
http://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #8 from Erich Hoover erich.e.hoover@gmail.com 2013-07-13 10:16:28 CDT --- Oh, and I forgot to mention before (for the full patches) that you need to reconfigure wine (autoreconf && ./configure) after patching if you're using an existing Wine install. Have you had a chance to check and see if the full patchset works?
http://bugs.winehq.org/show_bug.cgi?id=33576
Brandon Corujo haku08879@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |haku08879@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=33576
Erich Hoover erich.e.hoover@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |34406
http://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #9 from haarp liquitsnake@gmx.net --- Sorry for the delay.
I tested the full patchset (0004 through 0006) with Wine 1.7.2, which was the lastest version they would still apply to. After trying a clean rebuild of Wine, as suggested, the patches seem to indeed fix the problem of the program not starting.
http://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #10 from Erich Hoover erich.e.hoover@gmail.com --- (In reply to comment #9)
Sorry for the delay.
I tested the full patchset (0004 through 0006) with Wine 1.7.2, which was the lastest version they would still apply to. After trying a clean rebuild of Wine, as suggested, the patches seem to indeed fix the problem of the program not starting.
Excellent! I'm actually keeping them completely up to date with Wine's git in a github repo these days: https://github.com/compholio/wine-compholio-daily/tree/master/patches/02-ACL...
Patch 0004 (in the ones you used) is actually included in Wine now, so only the other two are needed now (they are numbered 0001 and 0002 and updated in that repo). I'm currently waiting for some other wineserver changes to be reviewed, but once those changes are in then these patches are my next priority.
http://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #11 from Erich Hoover erich.e.hoover@gmail.com --- (In reply to comment #10)
... Excellent! I'm actually keeping them completely up to date with Wine's git in a github repo these days: https://github.com/compholio/wine-compholio-daily/tree/master/patches/02- ACL_Extended_Attributes
Patch 0004 (in the ones you used) is actually included in Wine now, so only the other two are needed now (they are numbered 0001 and 0002 and updated in that repo). I'm currently waiting for some other wineserver changes to be reviewed, but once those changes are in then these patches are my next priority.
I've updated these patches to also fix Bug #34406, so they are renumbered now I will likely split them up a bit more, so just apply all the patches in that folder if you get around to testing.
http://bugs.winehq.org/show_bug.cgi?id=33576
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |30489
http://bugs.winehq.org/show_bug.cgi?id=33576
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Paint Tool SAI won't start |Multiple applications need | |persistence support for | |ACL/file security | |information (storage in | |extended file | |attributes)(Paint Tool SAI, | |Finale Notepad 2012, | |SmartDeviceMonitor)
--- Comment #12 from Anastasius Focht focht@gmx.net --- Hello folks,
refining summary: multiple applications depend on persistence support for ACL/file security information.
$ wine --version wine-1.7.19
Regards
https://bugs.winehq.org/show_bug.cgi?id=33576
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |popsch@gmx.net
--- Comment #13 from Anastasius Focht focht@gmx.net --- *** Bug 37326 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=33576
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bbaago@gmail.com
--- Comment #14 from Anastasius Focht focht@gmx.net --- *** Bug 37186 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=33576
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |silverwerwolf13@gmail.com
--- Comment #15 from Anastasius Focht focht@gmx.net --- *** Bug 35649 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=33576
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ehsan.akhgari@gmail.com
--- Comment #16 from Anastasius Focht focht@gmx.net --- *** Bug 37902 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=33576
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=33576
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |psychonaut@nothingisreal.co | |m
--- Comment #17 from Anastasius Focht focht@gmx.net --- *** Bug 37992 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #18 from Austin English austinenglish@gmail.com --- *** Bug 31858 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=33576
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ratman386zon@gmail.com
--- Comment #19 from Anastasius Focht focht@gmx.net --- *** Bug 38150 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=33576
Susan Cragin susancragin@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |susancragin@gmail.com
--- Comment #20 from Susan Cragin susancragin@gmail.com --- *** Bug 38000 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #21 from Sebastian Lackner sebastian@fds-team.de --- Just to make sure, that everyone looking into this bug actually finds the latest version of our patches - they are available at:
https://github.com/wine-compholio/wine-staging/tree/master/patches/ntdll-DOS... https://github.com/wine-compholio/wine-staging/tree/master/patches/server-St... https://github.com/wine-compholio/wine-staging/tree/master/patches/server-In...
Please note that the patches depend on each other, dependency information and other metadata can be found in the "definition" file in each directory. Our repository contains also further ACL related patches, but the three mentioned above should be sufficient to fix the issue described here.
https://bugs.winehq.org/show_bug.cgi?id=33576
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |piotr.caban@gmail.com
--- Comment #22 from Piotr Caban piotr.caban@gmail.com --- All of the applications described in this bug I was able to test are working for me now (in plain wine). I've tested some WiX based installers (e.g. vcruntime2012, MechWarrior Online, vcruntime2013), Finale Notepad 2012 is also working for me. Please retest.
Does any of the applications mentioned in this bug _really_ needs persistence DACL support?
https://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #23 from Piotr Caban piotr.caban@gmail.com --- I've looked why Pain Tool SAI doesn't work in wine. The application checks that "everyone" is able to change file permissions. It doesn't much Unix permissions scheme where only root and owner can do that.
Returning fake permission is not a good idea since it will not work when there's support for multiple user accounts in wine. I wonder if it's possible to set such permissions using Linux ACL's.
https://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #24 from Sebastian Lackner sebastian@fds-team.de --- Hello Piotr,
(In reply to Piotr Caban from comment #22)
Does any of the applications mentioned in this bug _really_ needs persistence DACL support?
first of all, I really appreciate your effort to fix such ACL related bugs, so thanks for that ... but: I would have preferred if this would happen in some kind of cooperation with us instead of going it alone. You know how difficult it will be to fix things, if it turns out that your attempt contains some fundamental flaws. A lot of these ACL bugs are opened since years, one week sooner or later would have changed nothing.
Your fixes are still not sufficient for example for Silverlight whereas Erichs original version worked fine. I haven't tracked down yet if its caused by missing support for stored ACLs or missing inheritance for NtCreateFile (or probably both). Since a half-implemented inheritance logic doesn't make much sense, I am currently trying to rebase/rewrite and upstream our fixes for ACL inheritance in NtCreateFile as a next step. If it still doesn't work afterwards its a good example for a bug which needs stored ACLs.
Regards, Sebastian
https://bugs.winehq.org/show_bug.cgi?id=33576
--- Comment #25 from Erich E. Hoover erich.e.hoover@wine-staging.com --- (In reply to Piotr Caban from comment #23)
I've looked why Pain Tool SAI doesn't work in wine. The application checks that "everyone" is able to change file permissions. It doesn't much Unix permissions scheme where only root and owner can do that.
Returning fake permission is not a good idea since it will not work when there's support for multiple user accounts in wine. I wonder if it's possible to set such permissions using Linux ACL's.
Sorry it's taken me a while to respond to this, but here goes. According to the folks over at Samba, Linux ACLs cannot represent all of the state data contained in an NT ACL (this ACL is probably a good example). This means that while some of the information contained in the ACL can be properly represented, the rest of it is somewhat problematic.
My personal opinion is that we should: (1) Faithfully store the _entire_ security descriptor, the implementation for doing that that I put together (and Sebastian has updated) is available here: https://github.com/wine-compholio/wine-staging/tree/master/patches/server-St... (2) Also represent (as accurately as possible) the ACLs by converting to Linux/POSIX ACLs (3) Put together a kernel module that recognizes NT ACLs so that the kernel will be able to faithfully reproduce the entire NT ACL
Toward (1) I tried to upstream my DOS extended attribute support a while back ( https://github.com/wine-compholio/wine-staging/tree/master/patches/ntdll-DOS... ), but AJ was not satisfied with the solution. It was not entirely clear how to proceed in a way that would satisfy him. DOS extended attributes are required for reproducing a lot of other weird behavior (like files with the read only flag set), so I think that that patchset should somewhat be considered to be stand-alone.
https://bugs.winehq.org/show_bug.cgi?id=33576
Michael Müller michael@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |STAGED CC| |michael@fds-team.de Staged patchset| |https://github.com/wine-com | |pholio/wine-staging/tree/ma | |ster/patches/server-Stored_ | |ACLs
https://bugs.winehq.org/show_bug.cgi?id=33576
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
https://bugs.winehq.org/show_bug.cgi?id=33576
Qian Hong fracting@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fracting@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=33576
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Staged patchset|https://github.com/wine-com |https://github.com/wine-sta |pholio/wine-staging/tree/ma |ging/wine-staging/tree/mast |ster/patches/server-Stored_ |er/patches/server-Stored_AC |ACLs |Ls
https://bugs.winehq.org/show_bug.cgi?id=33576
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.systemax.jp/bin/ |https://web.archive.org/web |sai-1.1.0-ful-en.exe |/20110722125417/http://www. | |systemax.jp/bin/sai-1.1.0-f | |ul-en.exe