From 19a5c375e6efcd83532fa3534c35dbf768a678ea Mon Sep 17 00:00:00 2001 From: xie xingguo Date: Sat, 18 Aug 2018 17:17:01 +0800 Subject: [PATCH] osd/PGLog: trim - avoid dereferencing invalid iter Log(e.g., projected_log) could theoretically be emtpy and hence there might be potential access violation. Signed-off-by: xie xingguo --- src/osd/PGLog.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/osd/PGLog.cc b/src/osd/PGLog.cc index eb88dc1db3c..0d9d73e5980 100644 --- a/src/osd/PGLog.cc +++ b/src/osd/PGLog.cc @@ -100,9 +100,13 @@ void PGLog::IndexedLog::trim( // reset complete_to to the beginning of the log if (reset_complete_to) { - lgeneric_subdout(cct, osd, 20) << " moving complete_to " << " to " - << log.begin()->version << dendl; complete_to = log.begin(); + if (complete_to != log.end()) { + lgeneric_subdout(cct, osd, 20) << " moving complete_to to " + << log.begin()->version << dendl; + } else { + lgeneric_subdout(cct, osd, 20) << " log is now empty" << dendl; + } } } -- 2.47.3