diff --git a/daemon/src/audio/audiortp/audio_srtp_session.cpp b/daemon/src/audio/audiortp/audio_srtp_session.cpp index b6c3d94df80815603025b6536d16e7f355f6d610..5ce35a9bdc24b9b843652c0628ebd0a0224ee2fc 100644 --- a/daemon/src/audio/audiortp/audio_srtp_session.cpp +++ b/daemon/src/audio/audiortp/audio_srtp_session.cpp @@ -158,7 +158,7 @@ std::vector<std::string> AudioSrtpSession::getLocalCryptoInfo() // cryptographic context tagged 1, 2, 3... std::string tag = "1"; - std::string crypto_suite = sfl::CryptoSuites[localCryptoSuite_].name; + std::string crypto_suite(sfl::CryptoSuites[localCryptoSuite_].name); // srtp keys formated as the following as the following // inline:keyParameters|keylifetime|MasterKeyIdentifier @@ -309,13 +309,13 @@ void AudioSrtpSession::restoreCryptoContext(ost::CryptoContext *localContext, if (remoteCryptoCtx_ != remoteContext) { delete remoteCryptoCtx_; remoteCryptoCtx_ = remoteContext; + setInQueueCryptoContext(remoteCryptoCtx_); } if (localCryptoCtx_ != localContext) { delete localCryptoCtx_; localCryptoCtx_ = localContext; + setOutQueueCryptoContext(localCryptoCtx_); } - setInQueueCryptoContext(remoteCryptoCtx_); - setOutQueueCryptoContext(localCryptoCtx_); } } diff --git a/daemon/src/sip/sdes_negotiator.cpp b/daemon/src/sip/sdes_negotiator.cpp index 53dea5e741b9c1bbada5a3b9067e985fc5d53bbd..8bf4cc12db3a1905f37f7771f02343dc1a4bd7ca 100644 --- a/daemon/src/sip/sdes_negotiator.cpp +++ b/daemon/src/sip/sdes_negotiator.cpp @@ -173,8 +173,7 @@ std::vector<CryptoAttribute *> SdesNegotiator::parse() bool SdesNegotiator::negotiate() { - - std::vector<CryptoAttribute *> cryptoAttributeVector = parse(); + std::vector<CryptoAttribute *> cryptoAttributeVector(parse()); std::vector<CryptoAttribute *>::iterator iter_offer = cryptoAttributeVector.begin(); std::vector<CryptoSuiteDefinition>::const_iterator iter_local = localCapabilities_.begin(); @@ -193,7 +192,7 @@ bool SdesNegotiator::negotiate() cryptoSuite_ = (*iter_offer)->getCryptoSuite(); srtpKeyMethod_ = (*iter_offer)->getSrtpKeyMethod(); srtpKeyInfo_ = (*iter_offer)->getSrtpKeyInfo(); - authTagLength_ = cryptoSuite_.substr(cryptoSuite_.size()-2, 2); + authTagLength_ = cryptoSuite_.substr(cryptoSuite_.size() - 2, 2); } ++iter_local; diff --git a/daemon/src/sip/sdp.cpp b/daemon/src/sip/sdp.cpp index 8fa3010bc0075fe67be38fd585440987b8fd2cc3..76ab9c86221538b29d54980b3f63c2bfb293096a 100644 --- a/daemon/src/sip/sdp.cpp +++ b/daemon/src/sip/sdp.cpp @@ -401,8 +401,6 @@ void Sdp::setMediaTransportInfoFromRemoteSdp() void Sdp::getRemoteSdpCryptoFromOffer(const pjmedia_sdp_session* remote_sdp, CryptoOffer& crypto_offer) { - CryptoOffer remoteOffer; - for (unsigned i = 0; i < remote_sdp->media_count; ++i) { pjmedia_sdp_media *media = remote_sdp->media[i]; diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp index e85bc66236dc14f1812043ea86f4ff5cdd5f9077..706687ac569046c17033f36ba8024954aa1beea8 100644 --- a/daemon/src/sip/sipvoiplink.cpp +++ b/daemon/src/sip/sipvoiplink.cpp @@ -38,6 +38,7 @@ #include "sip_utils.h" #include "sipvoiplink.h" +#include "array_size.h" #include "manager.h" #include "logger.h" @@ -1327,9 +1328,6 @@ void sdp_create_offer_cb(pjsip_inv_session *inv, pjmedia_sdp_session **p_offer) // This callback is called after SDP offer/answer session has completed. void sdp_media_update_cb(pjsip_inv_session *inv, pj_status_t status) { - const pjmedia_sdp_session *remote_sdp; - const pjmedia_sdp_session *local_sdp; - SIPCall *call = static_cast<SIPCall *>(inv->mod_data[mod_ua_.id]); if (call == NULL) { @@ -1353,17 +1351,19 @@ void sdp_media_update_cb(pjsip_inv_session *inv, pj_status_t status) Sdp *sdpSession = call->getLocalSDP(); // Get active session sessions + const pjmedia_sdp_session *remote_sdp; pjmedia_sdp_neg_get_active_remote(inv->neg, &remote_sdp); + const pjmedia_sdp_session *local_sdp; pjmedia_sdp_neg_get_active_local(inv->neg, &local_sdp); // Print SDP session char buffer[1000]; memset(buffer, 0, sizeof buffer); - pjmedia_sdp_print(remote_sdp, buffer, 1000); + pjmedia_sdp_print(remote_sdp, buffer, sizeof buffer); DEBUG("SDP: Remote active SDP Session:\n%s", buffer); - memset(buffer, 0, 1000); - pjmedia_sdp_print(local_sdp, buffer, 1000); + memset(buffer, 0, sizeof buffer); + pjmedia_sdp_print(local_sdp, buffer, sizeof buffer); DEBUG("SDP: Local active SDP Session:\n%s", buffer); // Set active SDP sessions @@ -1383,9 +1383,9 @@ void sdp_media_update_cb(pjsip_inv_session *inv, pj_status_t status) bool nego_success = false; if (!crypto_offer.empty()) { - std::vector<sfl::CryptoSuiteDefinition>localCapabilities; + std::vector<sfl::CryptoSuiteDefinition> localCapabilities; - for (int i = 0; i < 3; i++) + for (size_t i = 0; i < ARRAYSIZE(sfl::CryptoSuites); ++i) localCapabilities.push_back(sfl::CryptoSuites[i]); sfl::SdesNegotiator sdesnego(localCapabilities, crypto_offer);