From fd88e486969df27d4ec919f6b23b59bf2559bd69 Mon Sep 17 00:00:00 2001 From: Andrew Poelstra Date: Wed, 22 Mar 2023 18:03:04 +0000 Subject: [PATCH] fuzz: remove AFL support AFAICT we literally never used this; it was available only on the bitcoin targets and not the honggfuzz ones; AFL has a broken dep tree (or at least, requires some more MSRV pins that I did not care to investigate). Just remove it entirely. --- fuzz/Cargo.toml | 8 +------- fuzz/cycle.sh | 1 - fuzz/fuzz.sh | 2 +- fuzz/fuzz_targets/bitcoin/deser_net_msg.rs | 15 ++------------- fuzz/fuzz_targets/bitcoin/deserialize_address.rs | 16 +++------------- fuzz/fuzz_targets/bitcoin/deserialize_amount.rs | 16 +++------------- fuzz/fuzz_targets/bitcoin/deserialize_block.rs | 15 ++------------- .../bitcoin/deserialize_prefilled_transaction.rs | 15 ++------------- fuzz/fuzz_targets/bitcoin/deserialize_psbt.rs | 15 ++------------- fuzz/fuzz_targets/bitcoin/deserialize_script.rs | 15 ++------------- .../bitcoin/deserialize_transaction.rs | 15 ++------------- fuzz/fuzz_targets/bitcoin/deserialize_witness.rs | 15 ++------------- fuzz/fuzz_targets/bitcoin/outpoint_string.rs | 14 +------------- .../bitcoin/script_bytes_to_asm_fmt.rs | 14 +------------- fuzz/fuzz_targets/hashes/cbor.rs | 6 +----- fuzz/fuzz_targets/hashes/json.rs | 6 +----- fuzz/fuzz_targets/hashes/ripemd160.rs | 6 +----- fuzz/fuzz_targets/hashes/sha1.rs | 6 +----- fuzz/fuzz_targets/hashes/sha256.rs | 6 +----- fuzz/fuzz_targets/hashes/sha512.rs | 6 +----- fuzz/fuzz_targets/hashes/sha512_256.rs | 6 +----- fuzz/generate-files.sh | 8 +------- 22 files changed, 32 insertions(+), 194 deletions(-) diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index 3d506398..d5fb0f9c 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -8,14 +8,8 @@ publish = false [package.metadata] cargo-fuzz = true -[features] -default = ["honggfuzz_fuzz"] -afl_fuzz = ["afl"] -honggfuzz_fuzz = ["honggfuzz"] - [dependencies] -honggfuzz = { version = "0.5", optional = true, default-features = false } -afl = { version = "0.4", optional = true } +honggfuzz = { version = "0.5", default-features = false } bitcoin = { version = "0.30.0", features = [ "serde" ] } rust-crypto = "0.2" diff --git a/fuzz/cycle.sh b/fuzz/cycle.sh index d33857c3..0b59827a 100755 --- a/fuzz/cycle.sh +++ b/fuzz/cycle.sh @@ -10,7 +10,6 @@ REPO_DIR=$(git rev-parse --show-toplevel) # shellcheck source=./fuzz-util.sh source "$REPO_DIR/fuzz/fuzz-util.sh" -export HFUZZ_BUILD_ARGS='--features honggfuzz_fuzz' while : do for targetFile in $(listTargetFiles); do diff --git a/fuzz/fuzz.sh b/fuzz/fuzz.sh index 3b9e2b22..a10d398f 100755 --- a/fuzz/fuzz.sh +++ b/fuzz/fuzz.sh @@ -28,7 +28,7 @@ for targetFile in $targetFiles; do else HFUZZ_INPUT_ARGS="" fi - HFUZZ_BUILD_ARGS="--features honggfuzz_fuzz" HFUZZ_RUN_ARGS="--run_time 30 --exit_upon_crash -v $HFUZZ_INPUT_ARGS" cargo hfuzz run "$targetName" + HFUZZ_RUN_ARGS="--run_time 30 --exit_upon_crash -v $HFUZZ_INPUT_ARGS" cargo hfuzz run "$targetName" checkReport "$targetName" done diff --git a/fuzz/fuzz_targets/bitcoin/deser_net_msg.rs b/fuzz/fuzz_targets/bitcoin/deser_net_msg.rs index 13a8d7e2..8fc9f7ea 100644 --- a/fuzz/fuzz_targets/bitcoin/deser_net_msg.rs +++ b/fuzz/fuzz_targets/bitcoin/deser_net_msg.rs @@ -1,21 +1,10 @@ -extern crate bitcoin; + +use honggfuzz::fuzz; fn do_test(data: &[u8]) { let _: Result = bitcoin::consensus::encode::deserialize(data); } -#[cfg(feature = "afl")] -#[macro_use] extern crate afl; -#[cfg(feature = "afl")] -fn main() { - fuzz!(|data| { - do_test(&data); - }); -} - -#[cfg(feature = "honggfuzz")] -#[macro_use] extern crate honggfuzz; -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|data| { diff --git a/fuzz/fuzz_targets/bitcoin/deserialize_address.rs b/fuzz/fuzz_targets/bitcoin/deserialize_address.rs index 1bfea4f8..ea4e0876 100644 --- a/fuzz/fuzz_targets/bitcoin/deserialize_address.rs +++ b/fuzz/fuzz_targets/bitcoin/deserialize_address.rs @@ -1,5 +1,7 @@ -extern crate bitcoin; + +use honggfuzz::fuzz; use std::str::FromStr; + fn do_test(data: &[u8]) { let data_str = String::from_utf8_lossy(data); let addr = match bitcoin::address::Address::from_str(&data_str) { @@ -9,18 +11,6 @@ fn do_test(data: &[u8]) { assert_eq!(addr.to_string(), data_str); } -#[cfg(feature = "afl")] -#[macro_use] extern crate afl; -#[cfg(feature = "afl")] -fn main() { - fuzz!(|data| { - do_test(&data); - }); -} - -#[cfg(feature = "honggfuzz")] -#[macro_use] extern crate honggfuzz; -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|data| { diff --git a/fuzz/fuzz_targets/bitcoin/deserialize_amount.rs b/fuzz/fuzz_targets/bitcoin/deserialize_amount.rs index 7d265c62..78b45eac 100644 --- a/fuzz/fuzz_targets/bitcoin/deserialize_amount.rs +++ b/fuzz/fuzz_targets/bitcoin/deserialize_amount.rs @@ -1,5 +1,7 @@ -extern crate bitcoin; + +use honggfuzz::fuzz; use std::str::FromStr; + fn do_test(data: &[u8]) { let data_str = String::from_utf8_lossy(data); @@ -26,18 +28,6 @@ fn do_test(data: &[u8]) { assert_eq!(amt, amt_roundtrip); } -#[cfg(feature = "afl")] -#[macro_use] extern crate afl; -#[cfg(feature = "afl")] -fn main() { - fuzz!(|data| { - do_test(&data); - }); -} - -#[cfg(feature = "honggfuzz")] -#[macro_use] extern crate honggfuzz; -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|data| { diff --git a/fuzz/fuzz_targets/bitcoin/deserialize_block.rs b/fuzz/fuzz_targets/bitcoin/deserialize_block.rs index 7bd1f982..73e3bd5e 100644 --- a/fuzz/fuzz_targets/bitcoin/deserialize_block.rs +++ b/fuzz/fuzz_targets/bitcoin/deserialize_block.rs @@ -1,21 +1,10 @@ -extern crate bitcoin; + +use honggfuzz::fuzz; fn do_test(data: &[u8]) { let _: Result= bitcoin::consensus::encode::deserialize(data); } -#[cfg(feature = "afl")] -#[macro_use] extern crate afl; -#[cfg(feature = "afl")] -fn main() { - fuzz!(|data| { - do_test(&data); - }); -} - -#[cfg(feature = "honggfuzz")] -#[macro_use] extern crate honggfuzz; -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|data| { diff --git a/fuzz/fuzz_targets/bitcoin/deserialize_prefilled_transaction.rs b/fuzz/fuzz_targets/bitcoin/deserialize_prefilled_transaction.rs index fce2f03e..cc98b7c2 100644 --- a/fuzz/fuzz_targets/bitcoin/deserialize_prefilled_transaction.rs +++ b/fuzz/fuzz_targets/bitcoin/deserialize_prefilled_transaction.rs @@ -1,4 +1,5 @@ -extern crate bitcoin; + +use honggfuzz::fuzz; fn do_test(data: &[u8]) { // We already fuzz Transactions in `./deserialize_transaction.rs`. @@ -13,18 +14,6 @@ fn do_test(data: &[u8]) { } } -#[cfg(feature = "afl")] -#[macro_use] extern crate afl; -#[cfg(feature = "afl")] -fn main() { - fuzz!(|data| { - do_test(&data); - }); -} - -#[cfg(feature = "honggfuzz")] -#[macro_use] extern crate honggfuzz; -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|data| { diff --git a/fuzz/fuzz_targets/bitcoin/deserialize_psbt.rs b/fuzz/fuzz_targets/bitcoin/deserialize_psbt.rs index 284c8655..9ed850aa 100644 --- a/fuzz/fuzz_targets/bitcoin/deserialize_psbt.rs +++ b/fuzz/fuzz_targets/bitcoin/deserialize_psbt.rs @@ -1,4 +1,5 @@ -extern crate bitcoin; + +use honggfuzz::fuzz; fn do_test(data: &[u8]) { let psbt: Result = bitcoin::psbt::Psbt::deserialize(data); @@ -13,18 +14,6 @@ fn do_test(data: &[u8]) { } } -#[cfg(feature = "afl")] -#[macro_use] extern crate afl; -#[cfg(feature = "afl")] -fn main() { - fuzz!(|data| { - do_test(&data); - }); -} - -#[cfg(feature = "honggfuzz")] -#[macro_use] extern crate honggfuzz; -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|data| { diff --git a/fuzz/fuzz_targets/bitcoin/deserialize_script.rs b/fuzz/fuzz_targets/bitcoin/deserialize_script.rs index 8c42ca38..05431200 100644 --- a/fuzz/fuzz_targets/bitcoin/deserialize_script.rs +++ b/fuzz/fuzz_targets/bitcoin/deserialize_script.rs @@ -1,4 +1,5 @@ -extern crate bitcoin; + +use honggfuzz::fuzz; use bitcoin::address::Address; use bitcoin::network::constants::Network; @@ -43,18 +44,6 @@ fn do_test(data: &[u8]) { } } -#[cfg(feature = "afl")] -#[macro_use] extern crate afl; -#[cfg(feature = "afl")] -fn main() { - fuzz!(|data| { - do_test(&data); - }); -} - -#[cfg(feature = "honggfuzz")] -#[macro_use] extern crate honggfuzz; -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|data| { diff --git a/fuzz/fuzz_targets/bitcoin/deserialize_transaction.rs b/fuzz/fuzz_targets/bitcoin/deserialize_transaction.rs index 14afa09c..0f916e72 100644 --- a/fuzz/fuzz_targets/bitcoin/deserialize_transaction.rs +++ b/fuzz/fuzz_targets/bitcoin/deserialize_transaction.rs @@ -1,4 +1,5 @@ -extern crate bitcoin; + +use honggfuzz::fuzz; fn do_test(data: &[u8]) { let tx_result: Result = bitcoin::consensus::encode::deserialize(data); @@ -25,18 +26,6 @@ fn do_test(data: &[u8]) { } } -#[cfg(feature = "afl")] -#[macro_use] extern crate afl; -#[cfg(feature = "afl")] -fn main() { - fuzz!(|data| { - do_test(&data); - }); -} - -#[cfg(feature = "honggfuzz")] -#[macro_use] extern crate honggfuzz; -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|data| { diff --git a/fuzz/fuzz_targets/bitcoin/deserialize_witness.rs b/fuzz/fuzz_targets/bitcoin/deserialize_witness.rs index b445e8d5..d4abe688 100644 --- a/fuzz/fuzz_targets/bitcoin/deserialize_witness.rs +++ b/fuzz/fuzz_targets/bitcoin/deserialize_witness.rs @@ -1,4 +1,5 @@ -extern crate bitcoin; + +use honggfuzz::fuzz; use bitcoin::consensus::{serialize, deserialize}; use bitcoin::blockdata::witness::Witness; @@ -11,18 +12,6 @@ fn do_test(data: &[u8]) { } } -#[cfg(feature = "afl")] -#[macro_use] extern crate afl; -#[cfg(feature = "afl")] -fn main() { - fuzz!(|data| { - do_test(&data); - }); -} - -#[cfg(feature = "honggfuzz")] -#[macro_use] extern crate honggfuzz; -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|data| { diff --git a/fuzz/fuzz_targets/bitcoin/outpoint_string.rs b/fuzz/fuzz_targets/bitcoin/outpoint_string.rs index a2edacfd..186d3cbb 100644 --- a/fuzz/fuzz_targets/bitcoin/outpoint_string.rs +++ b/fuzz/fuzz_targets/bitcoin/outpoint_string.rs @@ -1,5 +1,5 @@ -extern crate bitcoin; +use honggfuzz::fuzz; use bitcoin::blockdata::transaction::OutPoint; use bitcoin::consensus::encode; @@ -40,18 +40,6 @@ fn do_test(data: &[u8]) { } } -#[cfg(feature = "afl")] -#[macro_use] extern crate afl; -#[cfg(feature = "afl")] -fn main() { - fuzz!(|data| { - do_test(&data); - }); -} - -#[cfg(feature = "honggfuzz")] -#[macro_use] extern crate honggfuzz; -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|data| { diff --git a/fuzz/fuzz_targets/bitcoin/script_bytes_to_asm_fmt.rs b/fuzz/fuzz_targets/bitcoin/script_bytes_to_asm_fmt.rs index e8736575..fff77541 100644 --- a/fuzz/fuzz_targets/bitcoin/script_bytes_to_asm_fmt.rs +++ b/fuzz/fuzz_targets/bitcoin/script_bytes_to_asm_fmt.rs @@ -1,5 +1,5 @@ -extern crate bitcoin; +use honggfuzz::fuzz; use std::fmt; // faster than String, we don't need to actually produce the value, just check absence of panics @@ -20,18 +20,6 @@ fn do_test(data: &[u8]) { bitcoin::Script::from_bytes(data).fmt_asm(&mut writer); } -#[cfg(feature = "afl")] -#[macro_use] extern crate afl; -#[cfg(feature = "afl")] -fn main() { - fuzz!(|data| { - do_test(&data); - }); -} - -#[cfg(feature = "honggfuzz")] -#[macro_use] extern crate honggfuzz; -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|data| { diff --git a/fuzz/fuzz_targets/hashes/cbor.rs b/fuzz/fuzz_targets/hashes/cbor.rs index 7bb899ec..65d0a4ee 100644 --- a/fuzz/fuzz_targets/hashes/cbor.rs +++ b/fuzz/fuzz_targets/hashes/cbor.rs @@ -1,6 +1,7 @@ use bitcoin::hashes::Hmac; use bitcoin::hashes::{sha1, sha512, ripemd160, sha256d}; +use honggfuzz::fuzz; use serde::{Deserialize, Serialize}; #[derive(Deserialize, Serialize)] @@ -23,11 +24,6 @@ fn do_test(data: &[u8]) { } } -#[cfg(feature = "honggfuzz")] -#[macro_use] -extern crate honggfuzz; - -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|d| { do_test(d) }); diff --git a/fuzz/fuzz_targets/hashes/json.rs b/fuzz/fuzz_targets/hashes/json.rs index e23b6459..87518698 100644 --- a/fuzz/fuzz_targets/hashes/json.rs +++ b/fuzz/fuzz_targets/hashes/json.rs @@ -1,6 +1,7 @@ use bitcoin::hashes::Hmac; use bitcoin::hashes::{sha1, sha512, ripemd160, sha256d}; +use honggfuzz::fuzz; use serde::{Deserialize, Serialize}; #[derive(Deserialize, Serialize)] @@ -23,11 +24,6 @@ fn do_test(data: &[u8]) { } } -#[cfg(feature = "honggfuzz")] -#[macro_use] -extern crate honggfuzz; - -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|d| { do_test(d) }); diff --git a/fuzz/fuzz_targets/hashes/ripemd160.rs b/fuzz/fuzz_targets/hashes/ripemd160.rs index c46bb87b..6e007782 100644 --- a/fuzz/fuzz_targets/hashes/ripemd160.rs +++ b/fuzz/fuzz_targets/hashes/ripemd160.rs @@ -3,6 +3,7 @@ use bitcoin::hashes::Hash; use bitcoin::hashes::ripemd160; use crypto::digest::Digest; use crypto::ripemd160::Ripemd160; +use honggfuzz::fuzz; fn do_test(data: &[u8]) { let our_hash = ripemd160::Hash::hash(data); @@ -15,11 +16,6 @@ fn do_test(data: &[u8]) { assert_eq!(&our_hash[..], &rc_hash[..]); } -#[cfg(feature = "honggfuzz")] -#[macro_use] -extern crate honggfuzz; - -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|d| { do_test(d) }); diff --git a/fuzz/fuzz_targets/hashes/sha1.rs b/fuzz/fuzz_targets/hashes/sha1.rs index 16c52159..4558c689 100644 --- a/fuzz/fuzz_targets/hashes/sha1.rs +++ b/fuzz/fuzz_targets/hashes/sha1.rs @@ -3,6 +3,7 @@ use bitcoin::hashes::Hash; use bitcoin::hashes::sha1; use crypto::digest::Digest; use crypto::sha1::Sha1; +use honggfuzz::fuzz; fn do_test(data: &[u8]) { let our_hash = sha1::Hash::hash(data); @@ -15,11 +16,6 @@ fn do_test(data: &[u8]) { assert_eq!(&our_hash[..], &rc_hash[..]); } -#[cfg(feature = "honggfuzz")] -#[macro_use] -extern crate honggfuzz; - -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|d| { do_test(d) }); diff --git a/fuzz/fuzz_targets/hashes/sha256.rs b/fuzz/fuzz_targets/hashes/sha256.rs index 7e27025e..d47f6088 100644 --- a/fuzz/fuzz_targets/hashes/sha256.rs +++ b/fuzz/fuzz_targets/hashes/sha256.rs @@ -3,6 +3,7 @@ use bitcoin::hashes::Hash; use bitcoin::hashes::sha256; use crypto::digest::Digest; use crypto::sha2::Sha256; +use honggfuzz::fuzz; fn do_test(data: &[u8]) { let our_hash = sha256::Hash::hash(data); @@ -15,11 +16,6 @@ fn do_test(data: &[u8]) { assert_eq!(&our_hash[..], &rc_hash[..]); } -#[cfg(feature = "honggfuzz")] -#[macro_use] -extern crate honggfuzz; - -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|d| { do_test(d) }); diff --git a/fuzz/fuzz_targets/hashes/sha512.rs b/fuzz/fuzz_targets/hashes/sha512.rs index bf3c1f13..81f945d9 100644 --- a/fuzz/fuzz_targets/hashes/sha512.rs +++ b/fuzz/fuzz_targets/hashes/sha512.rs @@ -3,6 +3,7 @@ use bitcoin::hashes::Hash; use bitcoin::hashes::sha512; use crypto::digest::Digest; use crypto::sha2::Sha512; +use honggfuzz::fuzz; fn do_test(data: &[u8]) { let our_hash = sha512::Hash::hash(data); @@ -15,11 +16,6 @@ fn do_test(data: &[u8]) { assert_eq!(&our_hash[..], &rc_hash[..]); } -#[cfg(feature = "honggfuzz")] -#[macro_use] -extern crate honggfuzz; - -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|d| { do_test(d) }); diff --git a/fuzz/fuzz_targets/hashes/sha512_256.rs b/fuzz/fuzz_targets/hashes/sha512_256.rs index aa188161..3cdb0090 100644 --- a/fuzz/fuzz_targets/hashes/sha512_256.rs +++ b/fuzz/fuzz_targets/hashes/sha512_256.rs @@ -3,6 +3,7 @@ use bitcoin::hashes::Hash; use bitcoin::hashes::sha512_256; use crypto::digest::Digest; use crypto::sha2::Sha512Trunc256; +use honggfuzz::fuzz; fn do_test(data: &[u8]) { let our_hash = sha512_256::Hash::hash(data); @@ -15,11 +16,6 @@ fn do_test(data: &[u8]) { assert_eq!(&our_hash[..], &rc_hash[..]); } -#[cfg(feature = "honggfuzz")] -#[macro_use] -extern crate honggfuzz; - -#[cfg(feature = "honggfuzz")] fn main() { loop { fuzz!(|d| { do_test(d) }); diff --git a/fuzz/generate-files.sh b/fuzz/generate-files.sh index 7ab207a3..72c3d3a0 100755 --- a/fuzz/generate-files.sh +++ b/fuzz/generate-files.sh @@ -19,14 +19,8 @@ publish = false [package.metadata] cargo-fuzz = true -[features] -default = ["honggfuzz_fuzz"] -afl_fuzz = ["afl"] -honggfuzz_fuzz = ["honggfuzz"] - [dependencies] -honggfuzz = { version = "0.5", optional = true, default-features = false } -afl = { version = "0.4", optional = true } +honggfuzz = { version = "0.5", default-features = false } bitcoin = { version = "0.30.0", features = [ "serde" ] } rust-crypto = "0.2"