From: Casey Bodley Date: Thu, 19 Aug 2021 19:01:08 +0000 (-0400) Subject: rgw: use existing s->bucket in s3 website retarget() X-Git-Tag: v17.1.0~981^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2598e062d04d7fe4477aa096c19ebebfa77d19ea;p=ceph.git rgw: use existing s->bucket in s3 website retarget() we should have already looked up s->bucket and s->object during auth since s->object may store a raw pointer to s->bucket before this, overwriting s->bucket here would leave a dangling pointer and Object's operator<<() would crash Fixes: https://tracker.ceph.com/issues/51491 Signed-off-by: Casey Bodley --- diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 84adbf01dc1..1a561d9160d 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -4981,14 +4981,6 @@ int RGWHandler_REST_S3Website::retarget(RGWOp* op, RGWOp** new_op, optional_yiel if (!(s->prot_flags & RGW_REST_WEBSITE)) return 0; - int ret = store->get_bucket(s, nullptr, s->bucket_tenant, s->bucket_name, &s->bucket, y); - if (ret < 0) { - // TODO-FUTURE: if the bucket does not exist, maybe expose it here? - return -ERR_NO_SUCH_BUCKET; - } - - s->bucket_attrs = s->bucket->get_attrs(); - if (!s->bucket->get_info().has_website) { // TODO-FUTURE: if the bucket has no WebsiteConfig, expose it here return -ERR_NO_SUCH_WEBSITE_CONFIGURATION;