From 2d7bfafa879ca1475173a74a84c66fd7f5e1b6bc Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 10 Jun 2018 13:37:56 -0500 Subject: [PATCH] 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 --- src/osd/Session.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/osd/Session.h b/src/osd/Session.h index 3ef40f4102ae0..76b892c9dabcb 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()) { -- 2.39.5