fix: expand validation of tx_extra for merge mining tag

This commit is contained in:
David Main 2021-10-10 20:30:33 +02:00
parent 53be5765e6
commit 446810a837
No known key found for this signature in database
GPG key ID: 1DE9DEBFD0546E71
3 changed files with 21 additions and 7 deletions

View file

@ -249,10 +249,11 @@ bool xmrig::BlockTemplate::parse(bool hashes)
switch (extra_tag) {
case 0x01: // TX_EXTRA_TAG_PUBKEY
{
setOffset(TX_PUBKEY_OFFSET, offset(TX_EXTRA_OFFSET) + ar_extra.index());
ar_extra.skip(kKeySize);
break;
}
case 0x02: // TX_EXTRA_NONCE
{
uint64_t size = 0;
@ -261,7 +262,14 @@ bool xmrig::BlockTemplate::parse(bool hashes)
ar_extra(m_txExtraNonce, size);
}
break;
case 0x03: // TX_EXTRA_MERGE_MINING_TAG
{
uint64_t size = 0;
ar_extra(size);
setOffset(TX_EXTRA_MERGE_MINING_TAG_OFFSET, offset(TX_EXTRA_OFFSET) + ar_extra.index());
ar_extra(m_txMergeMiningTag, size+kKeySize);
break;
}
default:
return false; // TODO(SChernykh): handle other tags
}