From: J. Eric Ivancich Date: Tue, 15 Sep 2020 18:20:04 +0000 (-0400) Subject: rgw: advance pseudo-folders properly in delimited ordered listing X-Git-Tag: v14.2.12~76^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F37169%2Fhead;p=ceph.git rgw: advance pseudo-folders properly in delimited ordered listing The code mistakenly uses the current marker to figure out how to skip past a pseudo-directory. This could allow for some entries in a bucket to be skipped. The code should have used the current pseudo-directory to determine what to skip past. Signed-off-by: J. Eric Ivancich --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index bc4749589ab..3bca9051f12 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -2560,10 +2560,7 @@ int RGWRados::Bucket::List::list_objects_ordered( next_marker = prefix_key; (*common_prefixes)[prefix_key] = true; - int marker_delim_pos = cur_marker.name.find( - params.delim, cur_prefix.size()); - - skip_after_delim = cur_marker.name.substr(0, marker_delim_pos); + skip_after_delim = obj.name.substr(0, delim_pos); skip_after_delim.append(after_delim_s); ldout(cct, 20) << "skip_after_delim=" << skip_after_delim << dendl;