From 2ceb13af34bc38b418bb88d81131d770a71159bf Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Thu, 22 May 2014 18:27:58 -0700 Subject: [PATCH] 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 --- src/rgw/rgw_op.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 4b2e6b7e04cc..c150d5b409cc 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; } -- 2.47.3