From: Yehuda Sadeh Date: Fri, 23 May 2014 01:27:58 +0000 (-0700) Subject: rgw: check appropriate entity permission on put_metadata X-Git-Tag: v0.80.2~13^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2fd808fe93fe0cbd8754eb81d281c83254411039;p=ceph.git rgw: check appropriate entity permission on put_metadata Fixes: #8428 Backport: firefly Cannot use verify_object_permission() to test acls, as the operation here might either be on object or on bucket. Signed-off-by: Yehuda Sadeh (cherry picked from commit 2ceb13af34bc38b418bb88d81131d770a71159bf) --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 53a72ef37b7..26f587d0f15 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -1843,8 +1843,13 @@ done: int RGWPutMetadata::verify_permission() { - if (!verify_object_permission(s, RGW_PERM_WRITE)) - return -EACCES; + if (s->object) { + if (!verify_object_permission(s, RGW_PERM_WRITE)) + return -EACCES; + } else { + if (!verify_bucket_permission(s, RGW_PERM_WRITE)) + return -EACCES; + } return 0; }