diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2001-08-07 20:14:59 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2001-08-07 20:14:59 +0400 |
commit | c0ae23dc47de2d2ea8fa98b7cca386f0ccf24a07 (patch) | |
tree | 325945d5177a34903918dde2d0e911ea4be3efb7 /winsup/cygwin/security.cc | |
parent | 86fb0393244e5827070e0bb0328a5b40fe5c0268 (diff) |
* security.cc (alloc_sd): Don't set FILE_DELETE_CHILD for group
if S_ISVTX attribute is given.
* dir.cc (mkdir): Allow immediate setting of S_ISUID, S_ISGID and
S_ISVTX attribute.
* syscalls.cc (_open): Ditto.
Diffstat (limited to 'winsup/cygwin/security.cc')
-rw-r--r-- | winsup/cygwin/security.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/winsup/cygwin/security.cc b/winsup/cygwin/security.cc index d41d0a174..5a778e902 100644 --- a/winsup/cygwin/security.cc +++ b/winsup/cygwin/security.cc @@ -1393,7 +1393,8 @@ alloc_sd (uid_t uid, gid_t gid, const char *logsrv, int attribute, if (attribute & S_IXGRP) group_allow |= FILE_GENERIC_EXECUTE; if ((attribute & (S_IFDIR | S_IWGRP | S_IXGRP)) - == (S_IFDIR | S_IWGRP | S_IXGRP)) + == (S_IFDIR | S_IWGRP | S_IXGRP) + && !(attribute & S_ISVTX)) group_allow |= FILE_DELETE_CHILD; /* Construct allow attribute for everyone. */ |