Skip to content

Commit f2c98a3

Browse files
committed
Final fuzz fixes
1 parent b4e33e5 commit f2c98a3

File tree

3 files changed

+24
-4
lines changed

3 files changed

+24
-4
lines changed

fuzz/fuzz_targets/roundtrip_descriptor.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11

22
extern crate miniscript;
3+
extern crate regex;
34

45
use miniscript::{Descriptor, DummyKey};
5-
6+
use regex::Regex;
67
use std::str::FromStr;
78

89
fn do_test(data: &[u8]) {
910
let s = String::from_utf8_lossy(data);
1011
if let Ok(desc) = Descriptor::<DummyKey>::from_str(&s) {
1112
let output = desc.to_string();
12-
let normalize_aliases = s.replace("c:pk_k(", "pk(");
13+
14+
let multi_wrap_pk_re = Regex::new("([a-z]+)c:pk_k\\(").unwrap();
15+
let multi_wrap_pkh_re = Regex::new("([a-z]+)c:pk_h\\(").unwrap();
16+
17+
let normalize_aliases = multi_wrap_pk_re.replace_all(&s, "$1:pk(");
18+
let normalize_aliases = multi_wrap_pkh_re.replace_all(&normalize_aliases, "$1:pkh(");
19+
let normalize_aliases = normalize_aliases.replace("c:pk_k(", "pk(").replace("c:pk_h(", "pkh(");
20+
1321
assert_eq!(normalize_aliases, output);
1422
}
1523
}
@@ -32,4 +40,4 @@ fn main() {
3240
do_test(data);
3341
});
3442
}
35-
}
43+
}

fuzz/fuzz_targets/roundtrip_miniscript_str.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11

22
extern crate miniscript;
3+
extern crate regex;
34

45
use std::str::FromStr;
6+
use regex::Regex;
57

68
use miniscript::{DummyKey};
79
use miniscript::Miniscript;
@@ -10,7 +12,16 @@ fn do_test(data: &[u8]) {
1012
let s = String::from_utf8_lossy(data);
1113
if let Ok(desc) = Miniscript::<DummyKey>::from_str(&s) {
1214
let output = desc.to_string();
13-
assert_eq!(s, output);
15+
16+
let multi_wrap_pk_re = Regex::new("([a-z]+)c:pk_k\\(").unwrap();
17+
let multi_wrap_pkh_re = Regex::new("([a-z]+)c:pk_h\\(").unwrap();
18+
19+
let normalize_aliases = multi_wrap_pk_re.replace_all(&s, "$1:pk(");
20+
let normalize_aliases = multi_wrap_pkh_re.replace_all(&normalize_aliases, "$1:pkh(");
21+
let normalize_aliases = normalize_aliases.replace("c:pk_k(", "pk(").replace("c:pk_h(", "pkh(");
22+
23+
assert_eq!(normalize_aliases, output);
24+
1425
}
1526
}
1627

src/descriptor/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,7 @@ mod tests {
561561
StdDescriptor::from_str("(x()").unwrap_err();
562562
StdDescriptor::from_str("(\u{7f}()3").unwrap_err();
563563
StdDescriptor::from_str("pk()").unwrap_err();
564+
StdDescriptor::from_str("nl:0").unwrap_err(); //issue 63
564565

565566
StdDescriptor::from_str(TEST_PK).unwrap();
566567
}

0 commit comments

Comments
 (0)