From f828652f49f5b2057a9a46a9dab732b252ba0309 Mon Sep 17 00:00:00 2001 From: Tianshan Qu Date: Tue, 21 May 2019 18:50:06 +0800 Subject: [PATCH] rgw: fix list bucket with start maker and delimiter '/' will miss next object with char '0' '/' + 1 = '0', and the start marker will be skipped, so it will miss the '0' object. Fixes: http://tracker.ceph.com/issues/39989 Signed-off-by: Tianshan Qu (cherry picked from commit 43b5264c7d61ae3be56d68f131b544edee307a46) Conflicts: src/rgw/rgw_rados.cc - mimic does not have "unsigned" in the line "unsigned char e = delim.back();" --- src/rgw/rgw_rados.cc | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 40783cf449e05..cb68d60171c6b 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -5638,15 +5638,8 @@ int RGWRados::Bucket::update_bucket_id(const string& new_bucket_id) static inline std::string after_delim(std::string_view delim) { // assert: ! delim.empty() - char e = delim.back(); - delim.remove_suffix(1); std::string result{delim.data(), delim.length()}; - if (e < 255) { - result += char(++e); - } else { - result += e; - result += char(255); - } + result += char(255); return result; } -- 2.39.5