From: Abhishek Lekshmanan Date: Thu, 21 Feb 2019 16:06:52 +0000 (+0100) Subject: rgw: return ERR_NO_SUCH_BUCKET early while evaluating bucket policy X-Git-Tag: v14.2.22~22^2~12^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=41d98b090d9613569f32c993da2bb847a790a288;p=ceph.git rgw: return ERR_NO_SUCH_BUCKET early while evaluating bucket policy Right now we create a ERR_NO_SUCH_BUCKET ret code but continue further processing. Since this ret code isn't returned at any stage we end up creating a bucket instance anyway which shouldn't happen and then succeeding the client call in cases like put bucket versioning. Return an error code early in these cases Fixes: http://tracker.ceph.com/issues/38420 Signed-off-by: Abhishek Lekshmanan (cherry picked from commit cf66a6d5a7eee294313a1a08d0524daf939747e5) --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index c2501b7842a4..96858cbba76a 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -635,8 +635,7 @@ int rgw_build_bucket_policies(RGWRados* store, struct req_state* s) s->bucket_acl->get_owner().get_display_name(), }; } else { - s->bucket_acl->create_default(s->user->user_id, s->user->display_name); - ret = -ERR_NO_SUCH_BUCKET; + return -ERR_NO_SUCH_BUCKET; } s->bucket_owner = s->bucket_acl->get_owner();