]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: RGWSwiftWebsiteHandler::is_web_dir checks empty subdir_name 41778/head
authorFelix Hüttner <felix.huettner@mail.schwarz>
Thu, 6 May 2021 16:18:00 +0000 (12:18 -0400)
committerFelix Huettner <felix.huettner@mail.schwarz>
Wed, 9 Jun 2021 07:26:30 +0000 (09:26 +0200)
checking for empty name avoids later assertion in RGWObjectCtx::set_atomic

Fixes: CVE-2021-3531
(cherry picked from commit f44a8ae8aa27ecef69528db9aec220f12492810e)

Signed-off-by: Felix Huettner <felix.huettner@mail.schwarz>
src/rgw/rgw_rest_swift.cc

index e2a2db57d4ae5f7e7d22fd71deb8b80cdf27d115..1623dd07f3cf60832aea906453b5272c7152ec23 100644 (file)
@@ -2551,6 +2551,9 @@ bool RGWSwiftWebsiteHandler::is_web_dir() const
     return false;
   } else if (subdir_name.back() == '/') {
     subdir_name.pop_back();
+    if (subdir_name.empty()) {
+      return false;
+    }
   }
 
   std::unique_ptr<rgw::sal::Object> obj = s->bucket->get_object(rgw_obj_key(std::move(subdir_name)));