From 3df9a54a454cb8045197a9c4b01220248b78a651 Mon Sep 17 00:00:00 2001 From: philippegorley <philippe.gorley@savoirfairelinux.com> Date: Wed, 14 Feb 2018 15:15:54 -0500 Subject: [PATCH] sanitize ice data before printing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove garbage characters before printing the ice data Change-Id: I4bb29228adfc375519878738d091dab7e57bd5bf Reviewed-by: Sébastien Blin <sebastien.blin@savoirfairelinux.com> --- src/ringdht/ringaccount.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp index 3fd7ac0468..5ebcfbec62 100644 --- a/src/ringdht/ringaccount.cpp +++ b/src/ringdht/ringaccount.cpp @@ -459,8 +459,12 @@ RingAccount::startOutgoingCall(const std::shared_ptr<SIPCall>& call, const std:: [weak_dev_call, ice, callvid, dev] (dht::IceCandidates&& msg) { if (msg.id != callvid or msg.from != dev) return true; - RING_WARN("ICE request replied from DHT peer %s\n%s", dev.toString().c_str(), - std::string(msg.ice_data.cbegin(), msg.ice_data.cend()).c_str()); + // remove unprintable characters + auto iceData = std::string(msg.ice_data.cbegin(), msg.ice_data.cend()); + iceData.erase(std::remove_if(iceData.begin(), iceData.end(), + [](unsigned char c){ return !std::isprint(c) && !std::isspace(c); } + ), iceData.end()); + RING_WARN("ICE request replied from DHT peer %s\nData: %s", dev.toString().c_str(), iceData.c_str()); if (auto call = weak_dev_call.lock()) { call->setState(Call::ConnectionState::PROGRESSING); if (!ice->start(msg.ice_data)) { -- GitLab