psbt: Fix unsigned integer overflow

This commit is contained in:
Aurèle Oulès 2022-07-25 18:45:43 +02:00
parent 5057adf22f
commit 4fa79837ad
No known key found for this signature in database
GPG Key ID: 55F3976F7001D998

View File

@ -893,6 +893,9 @@ struct PSBTOutput
s >> leaf_hashes;
size_t after_hashes = s.size();
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;
m_tap_bip32_paths.emplace(xonly, std::make_pair(leaf_hashes, DeserializeKeyOrigin(s, origin_len)));
break;