server: Include groups in file mode calculation if the security descriptor matches the current user.
Hans Leidekker
hans at codeweavers.com
Tue Jul 19 02:52:54 CDT 2011
---
server/file.c | 16 ++++++++--------
1 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/server/file.c b/server/file.c
index fcfd572..07dab39 100644
--- a/server/file.c
+++ b/server/file.c
@@ -505,15 +505,15 @@ mode_t sd_to_mode( const struct security_descriptor *sd, const SID *owner )
{
denied_mode |= (mode << 6) | (mode << 3) | mode; /* all */
}
- else if (security_equal_sid( sid, owner ))
- {
- denied_mode |= (mode << 6); /* user only */
- }
else if ((security_equal_sid( user, owner ) &&
token_sid_present( current->process->token, sid, TRUE )))
{
denied_mode |= (mode << 6) | (mode << 3); /* user + group */
}
+ else if (security_equal_sid( sid, owner ))
+ {
+ denied_mode |= (mode << 6); /* user only */
+ }
break;
case ACCESS_ALLOWED_ACE_TYPE:
aa_ace = (const ACCESS_ALLOWED_ACE *)ace;
@@ -523,15 +523,15 @@ mode_t sd_to_mode( const struct security_descriptor *sd, const SID *owner )
{
new_mode |= (mode << 6) | (mode << 3) | mode; /* all */
}
- else if (security_equal_sid( sid, owner ))
- {
- new_mode |= (mode << 6); /* user only */
- }
else if ((security_equal_sid( user, owner ) &&
token_sid_present( current->process->token, sid, FALSE )))
{
new_mode |= (mode << 6) | (mode << 3); /* user + group */
}
+ else if (security_equal_sid( sid, owner ))
+ {
+ new_mode |= (mode << 6); /* user only */
+ }
break;
}
}
--
1.7.4.1
More information about the wine-patches
mailing list