diff options
author | Andrew Chow <github@achow101.com> | 2023-05-15 15:50:35 -0400 |
---|---|---|
committer | Andrew Chow <github@achow101.com> | 2023-05-31 15:17:05 -0400 |
commit | 84b2f353bbefb9264284e7430863b2fa1d796d38 (patch) | |
tree | 31fb3a1fec636bbe336710961261e3b31e2623e2 /src/wallet/sqlite.cpp | |
parent | 71300489af362c3fed4736de6bffab4d758b6a84 (diff) | |
download | bitcoin-84b2f353bbefb9264284e7430863b2fa1d796d38.tar.xz |
walletdb: Consistently clear key and value streams before writing
Before writing data to the output key and value streams, make sure they
are cleared.
Diffstat (limited to 'src/wallet/sqlite.cpp')
-rw-r--r-- | src/wallet/sqlite.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/wallet/sqlite.cpp b/src/wallet/sqlite.cpp index 77e8a4e9c1..7621f2476b 100644 --- a/src/wallet/sqlite.cpp +++ b/src/wallet/sqlite.cpp @@ -409,6 +409,7 @@ bool SQLiteBatch::ReadKey(DataStream&& key, DataStream& value) // Leftmost column in result is index 0 const std::byte* data{AsBytePtr(sqlite3_column_blob(m_read_stmt, 0))}; size_t data_size(sqlite3_column_bytes(m_read_stmt, 0)); + value.clear(); value.write({data, data_size}); sqlite3_clear_bindings(m_read_stmt); @@ -495,6 +496,9 @@ DatabaseCursor::Status SQLiteCursor::Next(DataStream& key, DataStream& value) return Status::FAIL; } + key.clear(); + value.clear(); + // Leftmost column in result is index 0 const std::byte* key_data{AsBytePtr(sqlite3_column_blob(m_cursor_stmt, 0))}; size_t key_data_size(sqlite3_column_bytes(m_cursor_stmt, 0)); |