blob: ac5331b13e6efa27caa5c13b035aacba26a77945 [file] [log] [blame]
katrielc44905cf2016-07-07 05:52:24 -07001/*
2* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
3*
4* Use of this source code is governed by a BSD-style license
5* that can be found in the LICENSE file in the root of the source
6* tree. An additional intellectual property rights grant can be found
7* in the file PATENTS. All contributing project authors may
8* be found in the AUTHORS file in the root of the source tree.
9*/
10
11#include <stddef.h>
12#include <stdint.h>
13
14#include "webrtc/p2p/base/pseudotcp.h"
Edward Lemurc20978e2017-07-06 19:44:34 +020015#include "webrtc/rtc_base/thread.h"
katrielc44905cf2016-07-07 05:52:24 -070016
17namespace webrtc {
18class FakeIPseudoTcpNotify : public cricket::IPseudoTcpNotify {
19 public:
20 void OnTcpOpen(cricket::PseudoTcp* tcp) {}
21 void OnTcpReadable(cricket::PseudoTcp* tcp) {}
22 void OnTcpWriteable(cricket::PseudoTcp* tcp) {}
23 void OnTcpClosed(cricket::PseudoTcp* tcp, uint32_t error) {}
24
25 cricket::IPseudoTcpNotify::WriteResult TcpWritePacket(cricket::PseudoTcp* tcp,
26 const char* buffer,
27 size_t len) {
28 return cricket::IPseudoTcpNotify::WriteResult::WR_SUCCESS;
29 }
30};
31
32struct Environment {
phoglund590cf282016-09-29 06:27:49 -070033 explicit Environment(cricket::IPseudoTcpNotify* notifier):
deadbeef70719a72017-05-04 12:16:28 -070034 ptcp(notifier, 0) {
katrielc44905cf2016-07-07 05:52:24 -070035 }
phoglund590cf282016-09-29 06:27:49 -070036
phoglund590cf282016-09-29 06:27:49 -070037 // We need the thread to avoid some uninteresting crashes, since the
38 // production code expects there to be a thread object available.
39 rtc::AutoThread thread;
deadbeef70719a72017-05-04 12:16:28 -070040 cricket::PseudoTcp ptcp;
katrielc44905cf2016-07-07 05:52:24 -070041};
42
43Environment* env = new Environment(new FakeIPseudoTcpNotify());
44
45void FuzzOneInput(const uint8_t* data, size_t size) {
deadbeef70719a72017-05-04 12:16:28 -070046 env->ptcp.NotifyPacket(reinterpret_cast<const char*>(data), size);
katrielc44905cf2016-07-07 05:52:24 -070047}
48} // namespace webrtc