blob: 4e14a13eebab87884d2144fbdeb4119da4fe1d10 [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
phoglund590cf282016-09-29 06:27:49 -070014#include "webrtc/base/thread.h"
katrielc44905cf2016-07-07 05:52:24 -070015#include "webrtc/p2p/base/pseudotcp.h"
16
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):
34 ptcp(new cricket::PseudoTcp(notifier, 0)) {
katrielc44905cf2016-07-07 05:52:24 -070035 }
phoglund590cf282016-09-29 06:27:49 -070036
37 cricket::PseudoTcp* const ptcp;
38
39 // We need the thread to avoid some uninteresting crashes, since the
40 // production code expects there to be a thread object available.
41 rtc::AutoThread thread;
katrielc44905cf2016-07-07 05:52:24 -070042};
43
44Environment* env = new Environment(new FakeIPseudoTcpNotify());
45
46void FuzzOneInput(const uint8_t* data, size_t size) {
47 env->ptcp->NotifyPacket(reinterpret_cast<const char*>(data), size);
48}
49} // namespace webrtc