Skip to content

Commit f09bf48

Browse files
committed
fuzz: add fuzz test for parsing definite descriptor keys
1 parent 4930ccb commit f09bf48

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

.github/workflows/cron-daily-fuzz.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ compile_descriptor,
2222
compile_taproot,
2323
miniscript_satisfy,
2424
parse_descriptor,
25+
parse_descriptor_definite,
2526
parse_descriptor_priv,
2627
parse_descriptor_secret,
2728
regression_descriptor_parse,

fuzz/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ path = "fuzz_targets/miniscript_satisfy.rs"
3434
name = "parse_descriptor"
3535
path = "fuzz_targets/parse_descriptor.rs"
3636

37+
[[bin]]
38+
name = "parse_descriptor_definite"
39+
path = "fuzz_targets/parse_descriptor_definite.rs"
40+
3741
[[bin]]
3842
name = "parse_descriptor_priv"
3943
path = "fuzz_targets/parse_descriptor_priv.rs"
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#![allow(unexpected_cfgs)]
2+
3+
use honggfuzz::fuzz;
4+
use miniscript::{DefiniteDescriptorKey, Descriptor};
5+
6+
fn do_test(data: &[u8]) {
7+
let data_str = String::from_utf8_lossy(data);
8+
9+
if let Ok(desc) = data_str.parse::<Descriptor<DefiniteDescriptorKey>>() {
10+
let _ = desc.to_string();
11+
let _ = desc.address(miniscript::bitcoin::Network::Bitcoin);
12+
}
13+
}
14+
15+
fn main() {
16+
loop {
17+
fuzz!(|data| {
18+
do_test(data);
19+
});
20+
}
21+
}

0 commit comments

Comments
 (0)