Throw error if CPubKey is invalid during PSBT keypath serialization

Github-Pull: #14690
Rebased-From: 4e4de10f69
This commit is contained in:
Gregory Sanders 2018-11-08 10:33:05 -05:00 committed by fanquake
parent de5e48a461
commit 5782fdcd8c
No known key found for this signature in database
GPG key ID: 2EEB9F5CC09526C1

View file

@ -188,6 +188,9 @@ template<typename Stream>
void SerializeHDKeypaths(Stream& s, const std::map<CPubKey, std::vector<uint32_t>>& hd_keypaths, uint8_t type)
{
for (auto keypath_pair : hd_keypaths) {
if (!keypath_pair.first.IsValid()) {
throw std::ios_base::failure("Invalid CPubKey being serialized");
}
SerializeToVector(s, type, MakeSpan(keypath_pair.first));
WriteCompactSize(s, keypath_pair.second.size() * sizeof(uint32_t));
for (auto& path : keypath_pair.second) {