Skip to content

Commit 25a2488

Browse files
committed
BlockchainLMDB: align new alt block entries in the DB
1 parent 389e3ba commit 25a2488

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/blockchain_db/lmdb/db_lmdb.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4488,7 +4488,8 @@ void BlockchainLMDB::add_alt_block(const crypto::hash &blkid, const cryptonote::
44884488

44894489
MDB_val k = {sizeof(blkid), (void *)&blkid};
44904490
const size_t val_size = sizeof(alt_block_data_t) + blob.size();
4491-
std::unique_ptr<char[]> val(new char[val_size]);
4491+
std::unique_ptr<char[]> val(new (std::align_val_t{alignof(alt_block_data_t)}) char[val_size]);
4492+
assert(reinterpret_cast<std::uintptr_t>(val.get()) % alignof(alt_block_data_t) == 0); // aligned to `alt_block_data_t`
44924493
memcpy(val.get(), &data, sizeof(alt_block_data_t));
44934494
memcpy(val.get() + sizeof(alt_block_data_t), blob.data(), blob.size());
44944495
MDB_val v = {val_size, (void *)val.get()};

0 commit comments

Comments
 (0)