blob: 78ddf0e455d5565fbf22432658b85bc590734da4 [file] [log] [blame]
katrielc44905cf2016-07-07 05:52:24 -07001/*
Yves Gerey665174f2018-06-19 15:03:05 +02002 * 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 */
katrielc44905cf2016-07-07 05:52:24 -070010
11#include <stddef.h>
12#include <stdint.h>
13
Steve Anton10542f22019-01-11 09:11:00 -080014#include "p2p/base/pseudo_tcp.h"
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020015#include "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 {
Yves Gerey665174f2018-06-19 15:03:05 +020033 explicit Environment(cricket::IPseudoTcpNotify* notifier)
34 : ptcp(notifier, 0) {}
phoglund590cf282016-09-29 06:27:49 -070035
phoglund590cf282016-09-29 06:27:49 -070036 // We need the thread to avoid some uninteresting crashes, since the
37 // production code expects there to be a thread object available.
38 rtc::AutoThread thread;
deadbeef70719a72017-05-04 12:16:28 -070039 cricket::PseudoTcp ptcp;
katrielc44905cf2016-07-07 05:52:24 -070040};
41
42Environment* env = new Environment(new FakeIPseudoTcpNotify());
43
44void FuzzOneInput(const uint8_t* data, size_t size) {
deadbeef70719a72017-05-04 12:16:28 -070045 env->ptcp.NotifyPacket(reinterpret_cast<const char*>(data), size);
katrielc44905cf2016-07-07 05:52:24 -070046}
47} // namespace webrtc