From: Sage Weil Date: Sun, 10 Jun 2018 18:37:56 +0000 (-0500) Subject: osd/Session: fix invalid iterator dereference in Sessoin::have_backoff() X-Git-Tag: v13.2.1~112^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F22730%2Fhead;p=ceph.git osd/Session: fix invalid iterator dereference in Sessoin::have_backoff() If p is i->second.end(), we do want to back up a position, but we shouldn't dereference p for p->first. Fixes: http://tracker.ceph.com/issues/24486 Signed-off-by: Sage Weil (cherry picked from commit 2d7bfafa879ca1475173a74a84c66fd7f5e1b6bc) --- diff --git a/src/osd/Session.h b/src/osd/Session.h index 3ef40f4102a..76b892c9dab 100644 --- a/src/osd/Session.h +++ b/src/osd/Session.h @@ -177,7 +177,7 @@ struct Session : public RefCountedObject { } auto p = i->second.lower_bound(oid); if (p != i->second.begin() && - p->first > oid) { + (p == i->second.end() || p->first > oid)) { --p; } if (p != i->second.end()) {