From e79cb0edaf88bde8ebdf1b0ac1b6fb5c6b5122d3 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Mon, 18 Mar 2024 12:55:27 +0800 Subject: [PATCH] replay: fix segfault in `Replay::queueSegment` (#31902) --- tools/replay/replay.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/replay/replay.cc b/tools/replay/replay.cc index 9657375be7..70b3f380e1 100644 --- a/tools/replay/replay.cc +++ b/tools/replay/replay.cc @@ -225,7 +225,7 @@ void Replay::queueSegment() { if (cur == segments_.end()) return; auto begin = std::prev(cur, std::min(segment_cache_limit / 2, std::distance(segments_.begin(), cur))); - auto end = std::next(begin, std::min(segment_cache_limit, segments_.size())); + auto end = std::next(begin, std::min(segment_cache_limit, std::distance(begin, segments_.end()))); // load one segment at a time auto it = std::find_if(cur, end, [](auto &it) { return !it.second || !it.second->isLoaded(); }); if (it != end && !it->second) {