From 487e694782b332a42fa69d2aa51e2ab02ae8fe63 Mon Sep 17 00:00:00 2001 From: Johannes Kron Date: Wed, 24 Oct 2018 00:53:39 +0200 Subject: [PATCH] Use default value if field trial switch is set to an invalid number MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:9851 Change-Id: I195e2e9b30905bd65f703098db9a1e7e44eac073 Reviewed-on: https://webrtc-review.googlesource.com/c/107620 Reviewed-by: Erik Språng Commit-Queue: Johannes Kron Cr-Commit-Position: refs/heads/master@{#25354} --- video/rtp_video_stream_receiver.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/video/rtp_video_stream_receiver.cc b/video/rtp_video_stream_receiver.cc index 6f1724f41a..c6b297da25 100644 --- a/video/rtp_video_stream_receiver.cc +++ b/video/rtp_video_stream_receiver.cc @@ -154,15 +154,16 @@ RtpVideoStreamReceiver::RtpVideoStreamReceiver( process_thread_->RegisterModule(nack_module_.get(), RTC_FROM_HERE); } - // The group here can be either a positive integer with an explicit size, in - // which case that is used as size. All other values shall result in the - // default value being used. + // The group here must be a positive power of 2, in which case that is used as + // size. All other values shall result in the default value being used. const std::string group_name = webrtc::field_trial::FindFullName("WebRTC-PacketBufferMaxSize"); int packet_buffer_max_size = kPacketBufferMaxSize; if (!group_name.empty() && (sscanf(group_name.c_str(), "%d", &packet_buffer_max_size) != 1 || - packet_buffer_max_size <= 0)) { + packet_buffer_max_size <= 0 || + // Verify that the number is a positive power of 2. + (packet_buffer_max_size & (packet_buffer_max_size - 1)) != 0)) { RTC_LOG(LS_WARNING) << "Invalid packet buffer max size: " << group_name; packet_buffer_max_size = kPacketBufferMaxSize; }