Cygwin: ACLs: don't set indicator for default ACEs prematurely
Commita2bfe7cae6
introduced a change ignoring default ACEs on files to come up with a valid POSIX ACL, reflecting the Windows ACEs actually making sense on files. However, if CREATOR OWNER or CREATOR GROUP ACEs - both only making sense as default ACEs - are found in the ACL, a value indicating the presence of default ACEs gets set, even on files. This in turn breaks a subsequent integrity check and get_posix_access returns EINVAL. The code path handling default ACEs on directories sets this indicator anyway, so don't set it just because one of the above SIDs are found. Fixes:a2bfe7cae6
("Cygwin: ACLs: ignore *_INHERIT flags in file ACLs") Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
5dc4e2089a
commit
f467a1da58
|
@ -850,14 +850,12 @@ get_posix_access (PSECURITY_DESCRIPTOR psd,
|
||||||
else if (ace_sid == well_known_creator_owner_sid)
|
else if (ace_sid == well_known_creator_owner_sid)
|
||||||
{
|
{
|
||||||
type = DEF_USER_OBJ;
|
type = DEF_USER_OBJ;
|
||||||
types_def |= type;
|
|
||||||
id = ACL_UNDEFINED_ID;
|
id = ACL_UNDEFINED_ID;
|
||||||
saw_def_user_obj = true;
|
saw_def_user_obj = true;
|
||||||
}
|
}
|
||||||
else if (ace_sid == well_known_creator_group_sid)
|
else if (ace_sid == well_known_creator_group_sid)
|
||||||
{
|
{
|
||||||
type = DEF_GROUP_OBJ;
|
type = DEF_GROUP_OBJ;
|
||||||
types_def |= type;
|
|
||||||
id = ACL_UNDEFINED_ID;
|
id = ACL_UNDEFINED_ID;
|
||||||
saw_def_group_obj = true;
|
saw_def_group_obj = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue