mirror of
https://github.com/wownero/wownero.git
synced 2026-10-23 18:38:34 +02:00
cryptonote_basic: fix add_extra_nonce_to_tx_extra() length
Reviewed-by: selsta <selsta@sent.at> Reviewed-by: SChernykh
This commit is contained in:
@@ -718,15 +718,19 @@ namespace cryptonote
|
||||
{
|
||||
CHECK_AND_ASSERT_MES(extra_nonce.size() <= TX_EXTRA_NONCE_MAX_COUNT, false, "extra nonce could be 255 bytes max");
|
||||
size_t start_pos = tx_extra.size();
|
||||
tx_extra.resize(tx_extra.size() + 2 + extra_nonce.size());
|
||||
const std::size_t len_varint_bytes = tools::get_varint_byte_size(extra_nonce.size());
|
||||
tx_extra.resize(tx_extra.size() + 1 + len_varint_bytes + extra_nonce.size());
|
||||
//write tag
|
||||
tx_extra[start_pos] = TX_EXTRA_NONCE;
|
||||
//write len
|
||||
++start_pos;
|
||||
tx_extra[start_pos] = static_cast<uint8_t>(extra_nonce.size());
|
||||
unsigned char * vp = tx_extra.data() + start_pos;
|
||||
tools::write_varint(vp, extra_nonce.size());
|
||||
assert(vp == tx_extra.data() + tx_extra.size() - extra_nonce.size());
|
||||
//write data
|
||||
++start_pos;
|
||||
memcpy(&tx_extra[start_pos], extra_nonce.data(), extra_nonce.size());
|
||||
start_pos += len_varint_bytes;
|
||||
if (!extra_nonce.empty())
|
||||
memcpy(&tx_extra[start_pos], extra_nonce.data(), extra_nonce.size());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user