From: Mykola Golub Date: Sat, 16 Jan 2021 05:00:09 +0000 (+0000) Subject: osd: fix potential null pointer dereference when sending ping X-Git-Tag: v16.2.0~78^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=11cfa551cc00f8b8921aada8fa22fe515e239e7a;p=ceph.git osd: fix potential null pointer dereference when sending ping Fixes: https://tracker.ceph.com/issues/48821 Signed-off-by: Mykola Golub (cherry picked from commit 86576b09973b857ec2fe8195069e21812992db26) --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 18e7acecdb8..668ff851a9a 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -5794,6 +5794,11 @@ void OSD::heartbeat() i != heartbeat_peers.end(); ++i) { int peer = i->first; + Session *s = static_cast(i->second.con_back->get_priv().get()); + if (!s) { + dout(30) << "heartbeat osd." << peer << " has no open con" << dendl; + continue; + } dout(30) << "heartbeat sending ping to osd." << peer << dendl; i->second.last_tx = now; @@ -5804,7 +5809,6 @@ void OSD::heartbeat() if (i->second.hb_interval_start == utime_t()) i->second.hb_interval_start = now; - Session *s = static_cast(i->second.con_back->get_priv().get()); std::optional delta_ub; s->stamps->sent_ping(&delta_ub);