Module: wine Branch: master Commit: 3321c450384e56e9153e0fff32b5933a18a7a6a7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3321c450384e56e9153e0fff32...
Author: Hans Leidekker hans@codeweavers.com Date: Tue Jul 19 09:52:54 2011 +0200
server: Include groups in file mode calculation if the security descriptor matches the current user.
---
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; } }