From f4a57d918df5ef86afed3d56666b3af283f1f411 Mon Sep 17 00:00:00 2001
From: Mohamed Chibani <mohamed.chibani@savoirfairelinux.com>
Date: Wed, 17 Nov 2021 14:17:30 -0500
Subject: [PATCH] ice transport - fix illegal memory access

Set vector size of remote addresses to component count
when initializing the ICE instance.

Gitlab: #573

Change-Id: Iff02142dfb36326e6baa239900ced9452ab3bb8e
---
 src/ice_transport.cpp  | 6 ++----
 src/sip/sipaccount.cpp | 4 +++-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/ice_transport.cpp b/src/ice_transport.cpp
index d932021053..3abf63d6ad 100644
--- a/src/ice_transport.cpp
+++ b/src/ice_transport.cpp
@@ -373,7 +373,7 @@ IceTransport::Impl::initIceInstance(const IceTransportOptions& options)
     compCount_ = streamsCount_ * compCountPerStream_;
     compIO_ = std::vector<ComponentIO>(compCount_);
     peerChannels_ = std::vector<PeerChannel>(compCount_);
-    iceDefaultRemoteAddr_.reserve(compCount_);
+    iceDefaultRemoteAddr_.resize(compCount_);
     initiatorSession_ = options.master;
     accountLocalAddr_ = std::move(options.accountLocalAddr);
     accountPublicAddr_ = std::move(options.accountPublicAddr);
@@ -1087,9 +1087,7 @@ IpAddr
 IceTransport::Impl::getDefaultRemoteAddress(unsigned compId) const
 {
     ASSERT_COMP_ID(compId, compCount_);
-    if (compId < iceDefaultRemoteAddr_.size())
-        return iceDefaultRemoteAddr_[compId - 1];
-    return {};
+    return iceDefaultRemoteAddr_[compId - 1];
 }
 
 void
diff --git a/src/sip/sipaccount.cpp b/src/sip/sipaccount.cpp
index e1459989eb..ac92eae687 100644
--- a/src/sip/sipaccount.cpp
+++ b/src/sip/sipaccount.cpp
@@ -1387,7 +1387,9 @@ SIPAccount::initTlsConfiguration()
 
     JAMI_DBG("Using %zu ciphers", ciphers_.size());
     tlsSetting_.ciphers_num = ciphers_.size();
-    tlsSetting_.ciphers = &ciphers_.front();
+    if (tlsSetting_.ciphers_num > 0) {
+        tlsSetting_.ciphers = &ciphers_.front();
+    }
 
     tlsSetting_.verify_server = tlsVerifyServer_;
     tlsSetting_.verify_client = tlsVerifyClient_;
-- 
GitLab