From: Nishtha Rai Date: Mon, 20 Jul 2015 14:01:25 +0000 (+0530) Subject: mds/MDSAuthCaps: add permissions for user bits X-Git-Tag: v10.0.0~123^2~66 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7293540115a136abbdba0c4e0199351f6530518a;p=ceph.git mds/MDSAuthCaps: add permissions for user bits Signed-off-by: Nishtha Rai --- diff --git a/src/mds/MDSAuthCaps.cc b/src/mds/MDSAuthCaps.cc index bf0d0f12a477..89c61d1285e3 100644 --- a/src/mds/MDSAuthCaps.cc +++ b/src/mds/MDSAuthCaps.cc @@ -154,10 +154,18 @@ bool MDSAuthCaps::is_capable(const std::string &inode_path, return true; } - if ((!(mask & MAY_READ) || (inode_mode & S_IROTH)) && - (!(mask & MAY_WRITE) || (inode_mode & S_IWOTH)) && - (!(mask & MAY_EXECUTE) || (inode_mode & S_IXOTH))) { - return true; + if (inode_uid == uid) { + if ((!(mask & MAY_READ) || (inode_mode & S_IRUSR)) && + (!(mask & MAY_WRITE) || (inode_mode & S_IWUSR)) && + (!(mask & MAY_EXECUTE) || (inode_mode & S_IXUSR))) { + return true; + } + } else { + if ((!(mask & MAY_READ) || (inode_mode & S_IROTH)) && + (!(mask & MAY_WRITE) || (inode_mode & S_IWOTH)) && + (!(mask & MAY_EXECUTE) || (inode_mode & S_IXOTH))) { + return true; + } } // use fcntl.h macros for the file mode: