Integrate parsing of SCTP messages into WebRTC Fuzzers.

This change adds a basic fuzzer to exercise parsing of SCTP messages.

Bug: webrtc:10395
Change-Id: I1fd7a8560add3463c1978ebcad30082ae31f2073
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127042
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27113}
This commit is contained in:
Benjamin Wright 2019-03-13 10:59:12 -07:00 committed by Commit Bot
parent 7a7cf94a04
commit 7f3687ce26
3 changed files with 44 additions and 0 deletions

View File

@ -598,3 +598,16 @@ webrtc_fuzzer_test("rtp_rtcp_demuxer_helper_fuzzer") {
]
seed_corpus = "corpora/rtcp-corpus"
}
webrtc_fuzzer_test("sctp_utils_fuzzer") {
sources = [
"sctp_utils_fuzzer.cc",
]
deps = [
"../../api:libjingle_peerconnection_api",
"../../pc:libjingle_peerconnection",
"../../pc:peerconnection",
"../../rtc_base:rtc_base_approved",
]
}

View File

@ -1,3 +1,4 @@
include_rules = [
"+audio",
"+pc",
]

View File

@ -0,0 +1,30 @@
/*
* Copyright (c) 2019 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 <stddef.h>
#include <stdint.h>
#include <string>
#include "api/data_channel_interface.h"
#include "pc/sctp_utils.h"
#include "rtc_base/copy_on_write_buffer.h"
namespace webrtc {
void FuzzOneInput(const uint8_t* data, size_t size) {
rtc::CopyOnWriteBuffer payload(data, size);
std::string label;
DataChannelInit config;
IsOpenMessage(payload);
ParseDataChannelOpenMessage(payload, &label, &config);
ParseDataChannelOpenAckMessage(payload);
}
} // namespace webrtc