Cygwin: get_posix_access: do not merge permissions for just created files
When creating the POSIX ACL rewrite, the code merging permissions from
everyone/group to group/user ACEs was accidentally called for newly
generated files as well.
This could result in broken permissions, if umask used unusual values
like "0100", granted permissions to everyone/group not granted to
group/user.
Make sure to skip permission merging if the file got just created and
we only want to set correct permissions for the first time.
Fixes: bc444e5aa4
("Reapply POSIX ACL changes.")
Reported-by: Jon Turney <jon.turney@dronecode.org.uk>
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
8b0b719d49
commit
971d2dffea
|
@ -1103,7 +1103,7 @@ get_posix_access (PSECURITY_DESCRIPTOR psd,
|
||||||
pos = MAX_ACL_ENTRIES;
|
pos = MAX_ACL_ENTRIES;
|
||||||
|
|
||||||
/* For old-style or non-Cygwin ACLs, check for merging permissions. */
|
/* For old-style or non-Cygwin ACLs, check for merging permissions. */
|
||||||
if (!new_style)
|
if (!just_created && !new_style)
|
||||||
for (idx = 0; idx < pos; ++idx)
|
for (idx = 0; idx < pos; ++idx)
|
||||||
{
|
{
|
||||||
if (lacl[idx].a_type & (USER_OBJ | USER)
|
if (lacl[idx].a_type & (USER_OBJ | USER)
|
||||||
|
|
Loading…
Reference in New Issue