diff --git a/webrtc/BUILD.gn b/webrtc/BUILD.gn index f11509cb91..b26d29f2ee 100644 --- a/webrtc/BUILD.gn +++ b/webrtc/BUILD.gn @@ -281,15 +281,12 @@ source_set("rtc_event_log") { } if (use_libfuzzer || use_drfuzz) { - group("webrtc_fuzzers") { + # This target is only here for gn to discover fuzzer build targets under + # webrtc/test/fuzzers/. + group("webrtc_fuzzers_dummy") { testonly = true deps = [ - "test/fuzzers:audio_decoder_ilbc_fuzzer", - "test/fuzzers:audio_decoder_isac_fuzzer", - "test/fuzzers:audio_decoder_isacfix_fuzzer", - "test/fuzzers:audio_decoder_opus_fuzzer", - "test/fuzzers:vp8_qp_parser_fuzzer", - "test/fuzzers:vp9_depacketizer_fuzzer", + "test/fuzzers:webrtc_fuzzer_main", ] } } diff --git a/webrtc/test/fuzzers/BUILD.gn b/webrtc/test/fuzzers/BUILD.gn index 798f99e127..6a43548ec9 100644 --- a/webrtc/test/fuzzers/BUILD.gn +++ b/webrtc/test/fuzzers/BUILD.gn @@ -21,6 +21,24 @@ static_library("webrtc_fuzzer_main") { ] } +webrtc_fuzzer_test("h264_depacketizer_fuzzer") { + sources = [ + "h264_depacketizer_fuzzer.cc", + ] + deps = [ + "../../modules/rtp_rtcp", + ] +} + +webrtc_fuzzer_test("vp8_depacketizer_fuzzer") { + sources = [ + "vp8_depacketizer_fuzzer.cc", + ] + deps = [ + "../../modules/rtp_rtcp", + ] +} + webrtc_fuzzer_test("vp9_depacketizer_fuzzer") { sources = [ "vp9_depacketizer_fuzzer.cc", diff --git a/webrtc/test/fuzzers/h264_depacketizer_fuzzer.cc b/webrtc/test/fuzzers/h264_depacketizer_fuzzer.cc new file mode 100644 index 0000000000..ca73d9495f --- /dev/null +++ b/webrtc/test/fuzzers/h264_depacketizer_fuzzer.cc @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ +#include "webrtc/modules/rtp_rtcp/source/rtp_format_h264.h" + +namespace webrtc { +void FuzzOneInput(const uint8_t* data, size_t size) { + RtpDepacketizerH264 depacketizer; + RtpDepacketizer::ParsedPayload parsed_payload; + depacketizer.Parse(&parsed_payload, data, size); +} +} // namespace webrtc diff --git a/webrtc/test/fuzzers/vp8_depacketizer_fuzzer.cc b/webrtc/test/fuzzers/vp8_depacketizer_fuzzer.cc new file mode 100644 index 0000000000..d048372456 --- /dev/null +++ b/webrtc/test/fuzzers/vp8_depacketizer_fuzzer.cc @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ +#include "webrtc/modules/rtp_rtcp/source/rtp_format_vp8.h" + +namespace webrtc { +void FuzzOneInput(const uint8_t* data, size_t size) { + RtpDepacketizerVp8 depacketizer; + RtpDepacketizer::ParsedPayload parsed_payload; + depacketizer.Parse(&parsed_payload, data, size); +} +} // namespace webrtc