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: v17.1.0~3175^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=86576b09973b857ec2fe8195069e21812992db26;p=ceph.git osd: fix potential null pointer dereference when sending ping Fixes: https://tracker.ceph.com/issues/48821 Signed-off-by: Mykola Golub --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 61666c392376a..b8273e5585ad7 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -5792,6 +5792,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; @@ -5802,7 +5807,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);