dcsctp: Add SCTP packet fuzzer
This fuzzer explores the SCTP parsing, as well as the individual chunks, as a successfully parsed packet will have its chunks iterated over and formatted using ToString. Bug: webrtc:12614 Change-Id: I88f703c5f79e4775a069b1d5439d413870f6a629 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214490 Reviewed-by: Tommi <tommi@webrtc.org> Commit-Queue: Victor Boivie <boivie@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33670}
This commit is contained in:
parent
3c31ee0793
commit
9410217413
@ -613,6 +613,15 @@ webrtc_fuzzer_test("sctp_utils_fuzzer") {
|
||||
]
|
||||
}
|
||||
|
||||
webrtc_fuzzer_test("dcsctp_packet_fuzzer") {
|
||||
sources = [ "dcsctp_packet_fuzzer.cc" ]
|
||||
deps = [
|
||||
"../../net/dcsctp/packet:chunk",
|
||||
"../../net/dcsctp/packet:sctp_packet",
|
||||
"../../rtc_base:rtc_base_approved",
|
||||
]
|
||||
}
|
||||
|
||||
webrtc_fuzzer_test("rtp_header_parser_fuzzer") {
|
||||
sources = [ "rtp_header_parser_fuzzer.cc" ]
|
||||
deps = [ "../:rtp_test_utils" ]
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
include_rules = [
|
||||
"+audio",
|
||||
"+pc",
|
||||
"+net/dcsctp",
|
||||
]
|
||||
|
||||
29
test/fuzzers/dcsctp_packet_fuzzer.cc
Normal file
29
test/fuzzers/dcsctp_packet_fuzzer.cc
Normal file
@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (c) 2021 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 "net/dcsctp/packet/chunk/chunk.h"
|
||||
#include "net/dcsctp/packet/sctp_packet.h"
|
||||
|
||||
namespace webrtc {
|
||||
using dcsctp::SctpPacket;
|
||||
|
||||
void FuzzOneInput(const uint8_t* data, size_t size) {
|
||||
absl::optional<SctpPacket> c =
|
||||
SctpPacket::Parse(rtc::ArrayView<const uint8_t>(data, size),
|
||||
/*disable_checksum_verification=*/true);
|
||||
|
||||
if (!c.has_value()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (const SctpPacket::ChunkDescriptor& desc : c->descriptors()) {
|
||||
dcsctp::DebugConvertChunkToString(desc.data);
|
||||
}
|
||||
}
|
||||
} // namespace webrtc
|
||||
Loading…
x
Reference in New Issue
Block a user