From 3295c01df233c0106c3358414ade2b61e3cd36fc Mon Sep 17 00:00:00 2001 From: Benjamin Wright Date: Fri, 29 Mar 2019 15:56:06 -0700 Subject: [PATCH] Prevent fuzzing replayer being stuck forever on malformed packet times. It is possible for the fuzzer to just never deliver packets if the packet delay is set long enough in the RtpReplayer. This is simply fixed by setting an upper bound. This change is in the test code setup. Bug: webrtc:10493,chromium:943420 Change-Id: I54f56e1aa7700f1151e0b58a5a53bc789d032c18 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130365 Reviewed-by: Steve Anton Commit-Queue: Benjamin Wright Cr-Commit-Position: refs/heads/master@{#27369} --- test/fuzzers/utils/rtp_replayer.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/fuzzers/utils/rtp_replayer.cc b/test/fuzzers/utils/rtp_replayer.cc index 4d53bd3f47..d1f888e0b1 100644 --- a/test/fuzzers/utils/rtp_replayer.cc +++ b/test/fuzzers/utils/rtp_replayer.cc @@ -10,6 +10,7 @@ #include "test/fuzzers/utils/rtp_replayer.h" +#include #include #include @@ -140,7 +141,8 @@ void RtpReplayer::ReplayPackets(Call* call, test::RtpFileReader* rtp_reader) { int64_t deliver_in_ms = replay_start_ms + packet.time_ms - now_ms; if (deliver_in_ms > 0) { - SleepMs(deliver_in_ms); + // Set an upper limit on sleep to prevent timing out. + SleepMs(std::min(deliver_in_ms, static_cast(100))); } ++num_packets;