/src/tungstenite-rs/fuzz/fuzz_targets/read_message_client.rs
Line | Count | Source (jump to first uncovered line) |
1 | | #![no_main] |
2 | | #[macro_use] extern crate libfuzzer_sys; |
3 | | extern crate tungstenite; |
4 | | |
5 | | use std::io; |
6 | | use std::io::Cursor; |
7 | | use tungstenite::WebSocket; |
8 | | use tungstenite::protocol::Role; |
9 | | //use std::result::Result; |
10 | | |
11 | | // FIXME: copypasted from tungstenite's protocol/mod.rs |
12 | | |
13 | | struct WriteMoc<Stream>(Stream); |
14 | | |
15 | | impl<Stream> io::Write for WriteMoc<Stream> { |
16 | 0 | fn write(&mut self, buf: &[u8]) -> io::Result<usize> { |
17 | 0 | Ok(buf.len()) |
18 | 0 | } |
19 | 0 | fn flush(&mut self) -> io::Result<()> { |
20 | 0 | Ok(()) |
21 | 0 | } |
22 | | } |
23 | | |
24 | | impl<Stream: io::Read> io::Read for WriteMoc<Stream> { |
25 | 2.36k | fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> { |
26 | 2.36k | self.0.read(buf) |
27 | 2.36k | } |
28 | | } |
29 | | |
30 | | // end of copypasta |
31 | | |
32 | | fuzz_target!(|data: &[u8]| { |
33 | | //let vector: Vec<u8> = data.into(); |
34 | | let cursor = Cursor::new(data); |
35 | | let mut socket = WebSocket::from_raw_socket(WriteMoc(cursor), Role::Client, None); |
36 | | socket.read().ok(); |
37 | | }); |