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.82~52^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1858%2Fhead;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 --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 4b2e6b7e04c..c150d5b409c 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -1889,8 +1889,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; }