Skip to content

Commit 5147c6f

Browse files
committed
descriptor: don't accept strings of the form tr(<key>,)
1 parent 6401c22 commit 5147c6f

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/descriptor/tr.rs

+8-3
Original file line numberDiff line numberDiff line change
@@ -587,9 +587,6 @@ fn parse_tr_tree(s: &str) -> Result<expression::Tree, Error> {
587587
return Err(Error::Unexpected("invalid taproot internal key".to_string()));
588588
}
589589
let internal_key = expression::Tree { name: key.name, args: vec![] };
590-
if script.is_empty() {
591-
return Ok(expression::Tree { name: "tr", args: vec![internal_key] });
592-
}
593590
let (tree, rest) = expression::Tree::from_slice_delim(script, 1, '{')?;
594591
if rest.is_empty() {
595592
Ok(expression::Tree { name: "tr", args: vec![internal_key, tree] })
@@ -770,6 +767,14 @@ mod tests {
770767
desc.replace(&[' ', '\n'][..], "")
771768
}
772769

770+
#[test]
771+
fn regression_736() {
772+
crate::Descriptor::<crate::DescriptorPublicKey>::from_str(
773+
"tr(0000000000000000000000000000000000000000000000000000000000000002,)",
774+
)
775+
.unwrap_err();
776+
}
777+
773778
#[test]
774779
fn for_each() {
775780
let desc = descriptor();

0 commit comments

Comments
 (0)