From c623aa45d35b269c6701a57e44ac05bb29a79dc8 Mon Sep 17 00:00:00 2001 From: mengxiangrui Date: Tue, 6 Jul 2021 19:58:55 +0800 Subject: [PATCH] rgw: fail as expected when set/delete-bucket-website attempted on a non-existent bucket, rgw should return HTTP 404 and NoSuchBucket. Fixes: https://tracker.ceph.com/issues/51536 Signed-off-by: xiangrui meng --- src/rgw/rgw_op.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index e89ae9732e23..cef7f945932d 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -2669,6 +2669,11 @@ void RGWSetBucketWebsite::execute(optional_yield y) if (op_ret < 0) return; + if (!s->bucket_exists) { + op_ret = -ERR_NO_SUCH_BUCKET; + return; + } + op_ret = store->forward_request_to_master(this, s->user.get(), nullptr, in_data, nullptr, s->info, y); if (op_ret < 0) { ldpp_dout(this, 0) << " forward_request_to_master returned ret=" << op_ret << dendl; @@ -2701,6 +2706,11 @@ void RGWDeleteBucketWebsite::pre_exec() void RGWDeleteBucketWebsite::execute(optional_yield y) { + if (!s->bucket_exists) { + op_ret = -ERR_NO_SUCH_BUCKET; + return; + } + bufferlist in_data; op_ret = store->forward_request_to_master(this, s->user.get(), nullptr, in_data, nullptr, s->info, y); -- 2.47.3