mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-10-11 03:53:22 +02:00
psbt: Fix unsigned integer overflow
This commit is contained in:
@@ -893,6 +893,9 @@ struct PSBTOutput
|
|||||||
s >> leaf_hashes;
|
s >> leaf_hashes;
|
||||||
size_t after_hashes = s.size();
|
size_t after_hashes = s.size();
|
||||||
size_t hashes_len = before_hashes - after_hashes;
|
size_t hashes_len = before_hashes - after_hashes;
|
||||||
|
if (hashes_len > value_len) {
|
||||||
|
throw std::ios_base::failure("Output Taproot BIP32 keypath has an invalid length");
|
||||||
|
}
|
||||||
size_t origin_len = value_len - hashes_len;
|
size_t origin_len = value_len - hashes_len;
|
||||||
m_tap_bip32_paths.emplace(xonly, std::make_pair(leaf_hashes, DeserializeKeyOrigin(s, origin_len)));
|
m_tap_bip32_paths.emplace(xonly, std::make_pair(leaf_hashes, DeserializeKeyOrigin(s, origin_len)));
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user