From 383d48be2fb2b389673cfe5d15a1104921219c9c Mon Sep 17 00:00:00 2001 From: runsisi Date: Tue, 29 Mar 2016 20:26:21 +0800 Subject: [PATCH] rbd-mirror: fix missing increment of iterators Signed-off-by: runsisi --- src/tools/rbd_mirror/Replayer.cc | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/tools/rbd_mirror/Replayer.cc b/src/tools/rbd_mirror/Replayer.cc index 234a19cd1cb71..ce76f99a57ee9 100644 --- a/src/tools/rbd_mirror/Replayer.cc +++ b/src/tools/rbd_mirror/Replayer.cc @@ -274,11 +274,15 @@ void Replayer::set_sources(const PoolImageIds &pool_image_ids) for (auto images_it = pool_images.begin(); images_it != pool_images.end();) { if (stop_image_replayer(images_it->second)) { - pool_images.erase(images_it++); - } + images_it = pool_images.erase(images_it); + } else { + ++images_it; + } } if (pool_images.empty()) { - m_images.erase(it++); + it = m_images.erase(it); + } else { + ++it; } continue; } @@ -289,7 +293,9 @@ void Replayer::set_sources(const PoolImageIds &pool_image_ids) auto &image_ids = pool_image_ids.at(pool_id); if (image_ids.find(ImageIds(images_it->first)) == image_ids.end()) { if (stop_image_replayer(images_it->second)) { - pool_images.erase(images_it++); + images_it = pool_images.erase(images_it); + } else { + ++images_it; } } else { ++images_it; -- 2.39.5