]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: s3website check for bucket before retargeting
authorSeena Fallah <seenafallah@gmail.com>
Fri, 1 Jul 2022 21:19:40 +0000 (23:19 +0200)
committerDavid Galloway <dgallowa@redhat.com>
Thu, 21 Jul 2022 16:26:48 +0000 (12:26 -0400)
On requesting s3website API without a bucket name it will crash because s->bucket is null

Fixes: https://tracker.ceph.com/issues/56281
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit 933dbabb3a2a43fd016bc61cc0ee5e27f7ad32e7)
(cherry picked from commit e2b923600c28626b921107c13e2c12d691eed3f1)

src/rgw/rgw_rest_s3.cc

index 1cb855d09e306d166925b06c7b7896aefffb045a..ff2af574fba22525d176ebed26e30ab16be03f5f 100644 (file)
@@ -4983,9 +4983,14 @@ int RGWHandler_REST_S3Website::retarget(RGWOp* op, RGWOp** new_op, optional_yiel
   if (!(s->prot_flags & RGW_REST_WEBSITE))
     return 0;
 
+  if (rgw::sal::Bucket::empty(s->bucket.get())) {
+    // TODO-FUTURE: if the bucket does not exist, maybe expose it here?
+    return -ERR_NO_SUCH_BUCKET;
+  }
+
   if (!s->bucket->get_info().has_website) {
-      // TODO-FUTURE: if the bucket has no WebsiteConfig, expose it here
-      return -ERR_NO_SUCH_WEBSITE_CONFIGURATION;
+    // TODO-FUTURE: if the bucket has no WebsiteConfig, expose it here
+    return -ERR_NO_SUCH_WEBSITE_CONFIGURATION;
   }
 
   rgw_obj_key new_obj;