Skip to content

Commit 2c3d8fe

Browse files
committed
Fix incorrect argument passed to Error::InvalidSegwitV0ProgramLength
1 parent 768dc39 commit 2c3d8fe

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/util/address.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ impl Payload {
401401
Payload::ScriptHash(ScriptHash::from_inner(hash_inner))
402402
} else if script.is_witness_program() {
403403
if script.witness_version() == Some(WitnessVersion::V0) && !(script.is_v0_p2wpkh() || script.is_v0_p2wsh()) {
404-
return Err(Error::InvalidSegwitV0ProgramLength(script.len()));
404+
return Err(Error::InvalidSegwitV0ProgramLength(script.len() - 2));
405405
}
406406

407407
Payload::WitnessProgram {
@@ -1430,9 +1430,11 @@ mod tests {
14301430
fn test_fail_address_from_script() {
14311431
let bad_p2wpkh = hex_script!("0014dbc5b0a8f9d4353b4b54c3db48846bb15abfec");
14321432
let bad_p2wsh = hex_script!("00202d4fa2eb233d008cc83206fa2f4f2e60199000f5b857a835e3172323385623");
1433+
let invalid_segwitv0_script = hex_script!("001161458e330389cd0437ee9fe3641d70cc18");
14331434
let expected = Err(Error::UnrecognizedScript);
14341435

14351436
assert_eq!(Address::from_script(&bad_p2wpkh, Network::Bitcoin), expected);
14361437
assert_eq!(Address::from_script(&bad_p2wsh, Network::Bitcoin), expected);
1438+
assert_eq!(Address::from_script(&invalid_segwitv0_script, Network::Bitcoin), Err(Error::InvalidSegwitV0ProgramLength(17)));
14371439
}
14381440
}

0 commit comments

Comments
 (0)