Module: wine Branch: master Commit: f5070b051147c33ccde44b2dfcb94c6338e0ce0f URL: http://source.winehq.org/git/wine.git/?a=commit;h=f5070b051147c33ccde44b2dfc...
Author: Rob Shearman rob@codeweavers.com Date: Sat Oct 6 14:31:34 2007 +0200
server: Only call fchmod in file_set_fd if the mode actually changed.
---
server/file.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/server/file.c b/server/file.c index 69d052c..7c384a3 100644 --- a/server/file.c +++ b/server/file.c @@ -503,13 +503,16 @@ static int file_set_sd( struct object *obj, const struct security_descriptor *sd /* no ACL means full access rights to anyone */ new_mode |= S_IRWXU | S_IRWXO;
- if (fchmod( unix_fd, new_mode & ~denied_mode ) == -1) + if (file->mode != (new_mode & ~denied_mode)) { - file_set_error(); - return 0; - } + if (fchmod( unix_fd, new_mode & ~denied_mode ) == -1) + { + file_set_error(); + return 0; + }
- file->mode = new_mode & ~denied_mode; + file->mode = new_mode & ~denied_mode; + } } return 1; }