From: xie xingguo Date: Sat, 18 Aug 2018 09:17:01 +0000 (+0800) Subject: osd/PGLog: trim - avoid dereferencing invalid iter X-Git-Tag: v14.0.1~444^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=19a5c375e6efcd83532fa3534c35dbf768a678ea;p=ceph.git 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 --- diff --git a/src/osd/PGLog.cc b/src/osd/PGLog.cc index eb88dc1db3c52..0d9d73e598058 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; + } } }