From db662d799ab7042a4bf878c08cd2d141d35abd5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20LE=20STUM?= <sebastien.le-stum@savoirfairelinux.com> Date: Wed, 30 Sep 2020 16:02:30 -0400 Subject: [PATCH] sip: avoid modifying video codec list collection while iterating Replace that unsafe behavior by a better erase + remove_if logic. Change-Id: I388357653449524b83c9776c169e1104160fec57 --- src/sip/sdp.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/sip/sdp.cpp b/src/sip/sdp.cpp index 1a69a74cdc..ede4e84797 100644 --- a/src/sip/sdp.cpp +++ b/src/sip/sdp.cpp @@ -331,11 +331,8 @@ Sdp::setLocalMediaVideoCapabilities( video_codec_list_ = selectedCodecs; // Do not expose H265 if accel is disactivated if (not jami::Manager::instance().videoPreferences.getEncodingAccelerated()) { - for (auto it = video_codec_list_.begin(); it != video_codec_list_.end(); ++it) { - if ((*it)->systemCodecInfo.name == "H265") { - video_codec_list_.erase(it); - } - } + video_codec_list_.erase(std::remove_if(video_codec_list_.begin(), video_codec_list_.end(), + [](const std::shared_ptr<AccountCodecInfo>& i){ return i->systemCodecInfo.name == "H265"; }), video_codec_list_.end()); } #else (void) selectedCodecs; -- GitLab