From: Sage Weil Date: Wed, 19 Aug 2015 13:36:16 +0000 (-0400) Subject: client: add get_{uid,gid} helpers for consistent uid/gids X-Git-Tag: v10.0.0~123^2~20 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4867ef0a3a8909f0b975bb24b02ffdd9b9581329;p=ceph.git client: add get_{uid,gid} helpers for consistent uid/gids Signed-off-by: Sage Weil --- diff --git a/src/client/Client.cc b/src/client/Client.cc index b28385f31a15..d351e5f5fed5 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -1544,9 +1544,9 @@ int Client::make_request(MetaRequest *request, oldest_tid = tid; if (uid < 0) - uid = user_id >= 0 ? user_id : getuid(); + uid = get_uid(); if (gid < 0) - gid = group_id >= 0 ? group_id : getgid(); + gid = get_gid(); request->set_caller_uid(uid); request->set_caller_gid(gid); @@ -6925,8 +6925,8 @@ int Client::open(const char *relpath, int flags, mode_t mode, int stripe_unit, if (!created) { // posix says we can only check permissions of existing files - uid_t uid = geteuid(); - gid_t gid = getegid(); + uid_t uid = get_uid(); + gid_t gid = get_gid(); r = check_permissions(in.get(), flags, uid, gid); if (r < 0) goto out; @@ -10337,8 +10337,8 @@ int Client::ll_open(Inode *in, int flags, Fh **fhp, int uid, int gid) int r; if (uid < 0) { - uid = geteuid(); - gid = getegid(); + uid = get_uid(); + gid = get_gid(); } if (!cct->_conf->fuse_default_permissions) { r = check_permissions(in, flags, uid, gid); diff --git a/src/client/Client.h b/src/client/Client.h index 4428e653347f..0482360538be 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -269,6 +269,17 @@ protected: int user_id, group_id; + int get_uid() { + if (user_id >= 0) + return user_id; + return ::geteuid(); + } + int get_gid() { + if (group_id >= 0) + return group_id; + return ::getegid(); + } + void set_cap_epoch_barrier(epoch_t e); epoch_t cap_epoch_barrier;