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: v13.2.7~290^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=00abdf56e5ac726377f297dd87c9f078e00767af;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 75bb5101a8498..9c6d06ac37db8 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -472,8 +472,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();