wallet: Fix use-after-free in WalletBatch::EraseRecords

Github-Pull: bitcoin/bitcoin#29176
Rebased-From: faebf1df2a
This commit is contained in:
MarcoFalke 2024-01-04 12:18:07 +01:00 committed by Ava Chow
parent 6acfc4324c
commit cf0f43ee42
No known key found for this signature in database
GPG key ID: 17565732E08E5E41

View file

@ -1132,13 +1132,13 @@ bool WalletBatch::EraseRecords(const std::unordered_set<std::string>& types)
} }
// Make a copy of key to avoid data being deleted by the following read of the type // Make a copy of key to avoid data being deleted by the following read of the type
Span key_data{key}; const SerializeData key_data{key.begin(), key.end()};
std::string type; std::string type;
key >> type; key >> type;
if (types.count(type) > 0) { if (types.count(type) > 0) {
m_batch->Erase(key_data); m_batch->Erase(Span{key_data});
} }
} }
return true; return true;