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