From 785694ccae63be84befbb3a2613a83ed0c3a6a8e Mon Sep 17 00:00:00 2001 From: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com> Date: Mon, 20 Nov 2017 18:39:16 -0500 Subject: [PATCH] fix EOF of Sdp::printSession() output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch fixes garbage characters at end of printSession output. Change-Id: Icb5e0b739810ddc889d2699e691d7caaebe1e83c Reviewed-by: Anthony Léonard <anthony.leonard@savoirfairelinux.com> --- src/sip/sdp.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/sip/sdp.cpp b/src/sip/sdp.cpp index 21949a05ac..b4914c744b 100644 --- a/src/sip/sdp.cpp +++ b/src/sip/sdp.cpp @@ -327,7 +327,7 @@ void Sdp::setLocalMediaAudioCapabilities(const std::vector<std::shared_ptr<Accou void Sdp::printSession(const pjmedia_sdp_session *session, const char* header) { - static constexpr size_t BUF_SZ = 4096; + static constexpr size_t BUF_SZ = 4095; std::unique_ptr<pj_pool_t, decltype(pj_pool_release)&> tmpPool_( pj_pool_create(&getSIPVoIPLink()->getCachingPool()->factory, "printSdp", BUF_SZ, BUF_SZ, nullptr), pj_pool_release @@ -344,14 +344,14 @@ Sdp::printSession(const pjmedia_sdp_session *session, const char* header) pjmedia_sdp_media_remove_all_attr(cloned_session->media[i], "crypto"); } - std::array<char, BUF_SZ> buffer; - auto size = pjmedia_sdp_print(cloned_session, buffer.data(), buffer.size()); + std::array<char, BUF_SZ+1> buffer; + auto size = pjmedia_sdp_print(cloned_session, buffer.data(), BUF_SZ); if (size < 0) { RING_ERR("%sSDP too big for dump", header); return; } - - RING_DBG("%s%s", header, buffer.data()); + buffer[size] = '\0'; + RING_DBG("%s%s", header, &buffer[0]); } int Sdp::createLocalSession(const std::vector<std::shared_ptr<AccountCodecInfo>>& selectedAudioCodecs, -- GitLab