diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 39a15c1ed..ea185c9a0 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +Mon Jul 9 10:05:00 2001 Corinna Vinschen + + * security.cc (alloc_sd): Don't set inheritance attribute for + permissions given to directories. + Thu Jun 28 22:19:08 2001 Christopher Faylor * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Return 0 for success. diff --git a/winsup/cygwin/security.cc b/winsup/cygwin/security.cc index 49716869b..0a843c7a0 100644 --- a/winsup/cygwin/security.cc +++ b/winsup/cygwin/security.cc @@ -1398,7 +1398,23 @@ alloc_sd (uid_t uid, gid_t gid, const char *logsrv, int attribute, group_deny &= ~(STANDARD_RIGHTS_READ | FILE_READ_ATTRIBUTES | FILE_READ_EA); /* Construct appropriate inherit attribute. */ + /* TODO */ +#if 0 + /* Inheriting of attributes result in some strange behaviour if + a user creates files in directories which are owned by another + user. Even if the creator has all permissions, the default + permissions of created files are set according to the dirs + permission bits which may result in the inability to chmod + the own file. + Even if not inheriting permissions seems to be the correct + behaviour from the POSIX point of view, I'll keep that + stuff in the sources if it turns out that native Windows + processes are failing due to this change. + */ DWORD inherit = (attribute & S_IFDIR) ? INHERIT_ALL : DONT_INHERIT; +#else + DWORD inherit = DONT_INHERIT; +#endif /* Set deny ACE for owner. */ if (owner_deny