From 57a588073951bed0dd1ddb4f2e02233a7748f94a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= <sebastien.blin@savoirfairelinux.com> Date: Mon, 22 Feb 2021 10:13:05 -0500 Subject: [PATCH] sipsicetransport: avoid to call shutdown callback without object Change-Id: I6f92c33c8b0087b58e7d692bde4d3421906fb61a --- src/jamidht/sips_transport_ice.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/jamidht/sips_transport_ice.cpp b/src/jamidht/sips_transport_ice.cpp index 8cec3c1252..edb9d0d5d0 100644 --- a/src/jamidht/sips_transport_ice.cpp +++ b/src/jamidht/sips_transport_ice.cpp @@ -249,10 +249,11 @@ SipsIceTransport::SipsIceTransport(pjsip_endpoint* endpt, }}; tls_ = std::make_unique<TlsSession>(std::move(iceSocket), param, cbs); - ice_->setOnShutdown([this]() { - if (tls_) - tls_->shutdown(); - }); + if (ice_) + ice_->setOnShutdown([this]() { + if (tls_) + tls_->shutdown(); + }); if (pjsip_transport_register(base.tpmgr, &base) != PJ_SUCCESS) throw std::runtime_error("Can't register PJSIP transport."); @@ -260,6 +261,8 @@ SipsIceTransport::SipsIceTransport(pjsip_endpoint* endpt, SipsIceTransport::~SipsIceTransport() { + if (ice_) + ice_->setOnShutdown({}); JAMI_DBG("~SipIceTransport@%p {tr=%p}", this, &trData_.base); stopLoop_ = true; -- GitLab