47dbcabc2ec6e6a03581d8c6c5e2433e1e0f3101

This change integrates fuzzing support for RtpDumps in WebRTC. This allows LibFuzzer to directly fuzz the RTP code path from packet arrival all the way to actual decoding and rendering. It does this by replaying each RTP packet in the RTPDump which can be mutated directly by the fuzzer. For fuzzing support the RtpFileReader needs to support reading from a buffer instead of an file. The test class requires FILE* for all its parsing operations and is deeply coupled this way. I chose to solve this problem at an OS level by using the tmpfile() option and copying the buffer to the tmpfile(). fmemopen() is no available on most platforms so couldn't be used as a generic solution. The additional copy isn't ideal but won't be a bottleneck for the fuzzing. In the future I plan for the fuzzers to read from a configuration file. But given the current packaging strategy for fuzzers in WebRTC this isn't easy. Bug: webrtc:9860 Change-Id: I2560120e82663f9e9fb5b9640e6a6d16f9c1a360 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126682 Reviewed-by: Niels Moller <nisse@webrtc.org> Commit-Queue: Benjamin Wright <benwright@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27151}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
Development
See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.
More info
- Official web site: http://www.webrtc.org
- Master source code repo: https://webrtc.googlesource.com/src
- Samples and reference apps: https://github.com/webrtc
- Mailing list: http://groups.google.com/group/discuss-webrtc
- Continuous build: http://build.chromium.org/p/client.webrtc
- Coding style guide
- Code of conduct
Description
Languages
C++
88.6%
C
3.3%
Java
3%
Objective-C++
1.9%
Python
1.9%
Other
1%