From 14c282f0ab55518801d9928a6d7a1eccff308766 Mon Sep 17 00:00:00 2001 From: Sebastien Duquette Date: Tue, 22 Oct 2019 15:38:55 -0400 Subject: [PATCH] Merge the PDU fuzzing in a single fuzzer --- ironrdp/fuzz/Cargo.toml | 12 ++------- .../fuzz/fuzz_targets/fuzz_capability_sets.rs | 9 ------- ironrdp/fuzz/fuzz_targets/fuzz_gcc.rs | 9 ------- ironrdp/fuzz/fuzz_targets/fuzz_mcs.rs | 10 ------- ironrdp/fuzz/fuzz_targets/fuzz_nego.rs | 10 ------- ironrdp/fuzz/fuzz_targets/fuzz_pdu.rs | 26 +++++++++++++++++++ ironrdp/fuzz/fuzz_targets/fuzz_tpdu.rs | 12 --------- 7 files changed, 28 insertions(+), 60 deletions(-) delete mode 100644 ironrdp/fuzz/fuzz_targets/fuzz_capability_sets.rs delete mode 100644 ironrdp/fuzz/fuzz_targets/fuzz_gcc.rs delete mode 100644 ironrdp/fuzz/fuzz_targets/fuzz_mcs.rs delete mode 100644 ironrdp/fuzz/fuzz_targets/fuzz_nego.rs create mode 100644 ironrdp/fuzz/fuzz_targets/fuzz_pdu.rs delete mode 100644 ironrdp/fuzz/fuzz_targets/fuzz_tpdu.rs diff --git a/ironrdp/fuzz/Cargo.toml b/ironrdp/fuzz/Cargo.toml index 01258613..c8e87a4a 100644 --- a/ironrdp/fuzz/Cargo.toml +++ b/ironrdp/fuzz/Cargo.toml @@ -21,16 +21,8 @@ git = "https://github.com/rust-fuzz/libfuzzer-sys.git" members = ["."] [[bin]] -name = "fuzz_mcs" -path = "fuzz_targets/fuzz_mcs.rs" - -[[bin]] -name = "fuzz_nego" -path = "fuzz_targets/fuzz_nego.rs" - -[[bin]] -name = "fuzz_tpdu" -path = "fuzz_targets/fuzz_tpdu.rs" +name = "fuzz_pdu" +path = "fuzz_targets/fuzz_pdu.rs" [[bin]] name = "fuzz_gcc" diff --git a/ironrdp/fuzz/fuzz_targets/fuzz_capability_sets.rs b/ironrdp/fuzz/fuzz_targets/fuzz_capability_sets.rs deleted file mode 100644 index 99eb793f..00000000 --- a/ironrdp/fuzz/fuzz_targets/fuzz_capability_sets.rs +++ /dev/null @@ -1,9 +0,0 @@ -#![no_main] -#[macro_use] extern crate libfuzzer_sys; -extern crate ironrdp; - -use ironrdp::{CapabilitySet, PduParsing}; - -fuzz_target!(|data: &[u8]| { - let _ = CapabilitySet::from_buffer(data); -}); diff --git a/ironrdp/fuzz/fuzz_targets/fuzz_gcc.rs b/ironrdp/fuzz/fuzz_targets/fuzz_gcc.rs deleted file mode 100644 index 6121b643..00000000 --- a/ironrdp/fuzz/fuzz_targets/fuzz_gcc.rs +++ /dev/null @@ -1,9 +0,0 @@ -#![no_main] -#[macro_use] extern crate libfuzzer_sys; -extern crate ironrdp; - -use ironrdp::{PduParsing, gcc::ClientGccBlocks}; - -fuzz_target!(|data: &[u8]| { - let _ = ClientGccBlocks::from_buffer(data); -}); diff --git a/ironrdp/fuzz/fuzz_targets/fuzz_mcs.rs b/ironrdp/fuzz/fuzz_targets/fuzz_mcs.rs deleted file mode 100644 index 5b419165..00000000 --- a/ironrdp/fuzz/fuzz_targets/fuzz_mcs.rs +++ /dev/null @@ -1,10 +0,0 @@ -#![no_main] -#[macro_use] extern crate libfuzzer_sys; -extern crate ironrdp; - -use ironrdp::PduParsing; -use ironrdp::McsPdu; - -fuzz_target!(|data: &[u8]| { - let _ = McsPdu::from_buffer(data); -}); diff --git a/ironrdp/fuzz/fuzz_targets/fuzz_nego.rs b/ironrdp/fuzz/fuzz_targets/fuzz_nego.rs deleted file mode 100644 index 0878912e..00000000 --- a/ironrdp/fuzz/fuzz_targets/fuzz_nego.rs +++ /dev/null @@ -1,10 +0,0 @@ -#![no_main] -#[macro_use] extern crate libfuzzer_sys; -extern crate ironrdp; - -use ironrdp::{parse_negotiation_request, parse_negotiation_response, X224TPDUType}; - -fuzz_target!(|data: &[u8]| { - // let _ = parse_negotiation_request(X224TPDUType::ConnectionRequest, data); - let _ = parse_negotiation_response(X224TPDUType::ConnectionConfirm, data); -}); diff --git a/ironrdp/fuzz/fuzz_targets/fuzz_pdu.rs b/ironrdp/fuzz/fuzz_targets/fuzz_pdu.rs new file mode 100644 index 00000000..a486dd25 --- /dev/null +++ b/ironrdp/fuzz/fuzz_targets/fuzz_pdu.rs @@ -0,0 +1,26 @@ +#![no_main] +#[macro_use] +extern crate libfuzzer_sys; +extern crate ironrdp; + +use ironrdp::gcc::{ + ClientClusterData, ClientGccBlocks, ConferenceCreateRequest, ConferenceCreateResponse, + ServerGccBlocks, +}; +use ironrdp::*; + +fuzz_target!(|data: &[u8]| { + let _ = Request::from_buffer(data); + let _ = Response::from_buffer(data); + let _ = McsPdu::from_buffer(data); + let _ = ClientGccBlocks::from_buffer(data); + let _ = ServerGccBlocks::from_buffer(data); + let _ = ClientClusterData::from_buffer(data); + let _ = ConferenceCreateRequest::from_buffer(data); + let _ = ConferenceCreateResponse::from_buffer(data); + let _ = ConnectInitial::from_buffer(data); + let _ = ConnectResponse::from_buffer(data); + let _ = ClientInfoPdu::from_buffer(data); + let _ = ServerLicensePdu::from_buffer(data); + let _ = CapabilitySet::from_buffer(data); +}); diff --git a/ironrdp/fuzz/fuzz_targets/fuzz_tpdu.rs b/ironrdp/fuzz/fuzz_targets/fuzz_tpdu.rs deleted file mode 100644 index 501d2812..00000000 --- a/ironrdp/fuzz/fuzz_targets/fuzz_tpdu.rs +++ /dev/null @@ -1,12 +0,0 @@ -#![no_main] -#[macro_use] extern crate libfuzzer_sys; -extern crate bytes; -extern crate ironrdp; - -use bytes::BytesMut; -use ironrdp::decode_x224; - -fuzz_target!(|data: &[u8]| { - let mut data_mut = BytesMut::from(data); - let _ = decode_x224(&mut data_mut); -});