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
Resolves: rhbz#
2412218
Signed-off-by: Suyash Dongre <suyashd999@gmail.com>
(cherry picked from commit
bef59f17293e6e93af025eba1e00646d0b1a2bf0)
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);