From 08e0d4f0e53d97edd655ec1103d60a2b4715fb91 Mon Sep 17 00:00:00 2001 From: Bruno Garcia Date: Mon, 3 Mar 2025 16:44:04 -0300 Subject: [PATCH] fuzz: cover minimal_non_dust_custom for Script --- fuzz/fuzz_targets/bitcoin/deserialize_script.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/fuzz/fuzz_targets/bitcoin/deserialize_script.rs b/fuzz/fuzz_targets/bitcoin/deserialize_script.rs index 866c76983..e7c1191b4 100644 --- a/fuzz/fuzz_targets/bitcoin/deserialize_script.rs +++ b/fuzz/fuzz_targets/bitcoin/deserialize_script.rs @@ -1,11 +1,16 @@ use bitcoin::address::Address; use bitcoin::consensus::encode; use bitcoin::script::{self, ScriptExt as _}; -use bitcoin::Network; +use bitcoin::{FeeRate, Network}; use honggfuzz::fuzz; +mod fuzz_utils; +use fuzz_utils::{consume_random_bytes, consume_u64}; + fn do_test(data: &[u8]) { - let s: Result = encode::deserialize(data); + let mut new_data = data; + let bytes = consume_random_bytes(&mut new_data); + let s: Result = encode::deserialize(bytes); if let Ok(script) = s { let _: Result, script::Error> = script.instructions().collect(); @@ -14,6 +19,9 @@ fn do_test(data: &[u8]) { let _ = script.count_sigops_legacy(); let _ = script.minimal_non_dust(); + let fee_rate = FeeRate::from_sat_per_kwu(consume_u64(&mut new_data)); + let _ = script.minimal_non_dust_custom(fee_rate); + let mut b = script::Builder::new(); for ins in script.instructions_minimal() { if ins.is_err() {