From 556258af55d44a65bcce83a1a4353c22a7bbc190 Mon Sep 17 00:00:00 2001 From: Alex Loiko Date: Tue, 9 Apr 2019 11:22:07 +0200 Subject: [PATCH] Fuzzer fix for multistream opus. Fuzzer test was configured in a wrong way in https://webrtc-review.googlesource.com/c/src/+/129768 This fixes it (verified locally on libfuzzer MSAN and ASAN). Bug: webrtc:8649, chromium:950813 Change-Id: I52647bb12c4c412252cdcd931c9e210606bdb12d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132009 Commit-Queue: Alex Loiko Reviewed-by: Sam Zackrisson Cr-Commit-Position: refs/heads/master@{#27516} --- .../audio_decoder_multistream_opus_fuzzer.cc | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/test/fuzzers/audio_decoder_multistream_opus_fuzzer.cc b/test/fuzzers/audio_decoder_multistream_opus_fuzzer.cc index 7705773837..474a1cdc43 100644 --- a/test/fuzzers/audio_decoder_multistream_opus_fuzzer.cc +++ b/test/fuzzers/audio_decoder_multistream_opus_fuzzer.cc @@ -16,10 +16,12 @@ namespace webrtc { AudioDecoderMultiChannelOpusConfig MakeDecoderConfig( int num_channels, + int num_streams, int coupled_streams, std::vector channel_mapping) { AudioDecoderMultiChannelOpusConfig config; config.num_channels = num_channels; + config.num_streams = num_streams; config.coupled_streams = coupled_streams; config.channel_mapping = channel_mapping; return config; @@ -27,22 +29,23 @@ AudioDecoderMultiChannelOpusConfig MakeDecoderConfig( void FuzzOneInput(const uint8_t* data, size_t size) { const std::vector surround_configs = { - MakeDecoderConfig(1, 0, {0}), // Mono + MakeDecoderConfig(1, 1, 0, {0}), // Mono - MakeDecoderConfig(2, 0, {0, 0}), // Copy the first (of - // 2) decoded streams - // into both output - // channel 0 and output - // channel 1. Ignore - // the 2nd decoded - // stream. + MakeDecoderConfig(2, 2, 0, {0, 0}), // Copy the first (of + // 2) decoded streams + // into both output + // channel 0 and output + // channel 1. Ignore + // the 2nd decoded + // stream. - MakeDecoderConfig(4, 2, {0, 1, 2, 3}), // Quad. - MakeDecoderConfig(6, 2, {0, 4, 1, 2, 3, 5}), // 5.1 - MakeDecoderConfig(8, 3, {0, 6, 1, 2, 3, 4, 5, 7}) // 7.1 + MakeDecoderConfig(4, 2, 2, {0, 1, 2, 3}), // Quad. + MakeDecoderConfig(6, 4, 2, {0, 4, 1, 2, 3, 5}), // 5.1 + MakeDecoderConfig(8, 5, 3, {0, 6, 1, 2, 3, 4, 5, 7}) // 7.1 }; const auto config = surround_configs[data[0] % surround_configs.size()]; + RTC_CHECK(config.IsOk()); std::unique_ptr dec = AudioDecoderMultiChannelOpus::MakeAudioDecoder(config); RTC_CHECK(dec);