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