]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty 66027/head
authorSuyash Dongre <suyashd999@gmail.com>
Wed, 20 Aug 2025 17:52:41 +0000 (23:22 +0530)
committerCasey Bodley <cbodley@redhat.com>
Wed, 22 Oct 2025 12:48:31 +0000 (08:48 -0400)
The issue was that the `HTTP_X_AMZ_COPY_SOURCE` header could be present but empty (i.e., an empty string rather than NULL). The  code only checked if the pointer was not NULL, but didn't verify that the string had content. When an empty string was passed to RGWCopyObj::parse_copy_location(), it would eventually try to access name_str[0] on an empty string, causing a crash.

Fixes: https://tracker.ceph.com/issues/72669
Signed-off-by: Suyash Dongre <suyashd999@gmail.com>
(cherry picked from commit bef59f17293e6e93af025eba1e00646d0b1a2bf0)

src/rgw/rgw_op.cc

index eb182271ae6f111d952cf32156af068d70acd6a4..12f0081e52d8de78d93e03f7507cd91bd20410f1 100644 (file)
@@ -5728,6 +5728,9 @@ bool RGWCopyObj::parse_copy_location(const std::string_view& url_src,
     params_str = url_src.substr(pos + 1);
   }
 
+  if (name_str.empty()) {
+    return false;
+  }
   if (name_str[0] == '/') // trim leading slash
     name_str.remove_prefix(1);