diff options
author | Shehjar Tikoo <shehjart@gluster.com> | 2010-11-16 03:44:37 +0000 |
---|---|---|
committer | Anand V. Avati <avati@dev.gluster.com> | 2010-11-16 04:44:06 -0800 |
commit | 36f696c7dbc785be464acae737f4c25ed3af861a (patch) | |
tree | b4ac18726a8691ffd51d8c4e7dfbe220db162043 /rpc/rpc-lib | |
parent | 4cfd6e1b45da64429c3e10886e2ceb4e9c9deb5d (diff) |
rpc-lib: Copy auxiliary GIDs into request from de-XDRed buffer
Fixes a problem where secondary groups are not accounted for in
permission checks.
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 2045 (Write permission denied for non-primary group membership)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2045
Diffstat (limited to 'rpc/rpc-lib')
-rw-r--r-- | rpc/rpc-lib/src/auth-glusterfs.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/rpc/rpc-lib/src/auth-glusterfs.c b/rpc/rpc-lib/src/auth-glusterfs.c index 459cad877..278693491 100644 --- a/rpc/rpc-lib/src/auth-glusterfs.c +++ b/rpc/rpc-lib/src/auth-glusterfs.c @@ -155,6 +155,7 @@ int auth_glusterfs_authenticate (rpcsvc_request_t *req, void *priv) { int ret = RPCSVC_AUTH_REJECT; struct auth_glusterfs_parms au = {0,}; + int gidcount = 0; if (!req) return ret; @@ -171,6 +172,9 @@ int auth_glusterfs_authenticate (rpcsvc_request_t *req, void *priv) req->lk_owner = au.lk_owner; req->auxgidcount = au.ngrps; + for (gidcount = 0; gidcount < au.ngrps; ++gidcount) + req->auxgids[gidcount] = au.groups[gidcount]; + gf_log (GF_RPCSVC, GF_LOG_TRACE, "Auth Info: pid: %u, uid: %d" ", gid: %d, owner: %"PRId64, req->pid, req->uid, req->gid, req->lk_owner); |