Block parser: sanity check minor version
This commit is contained in:
@@ -61,21 +61,17 @@ int PoolBlock::deserialize(const uint8_t* data, size_t size, const SideChain& si
|
|||||||
|
|
||||||
#define READ_BUF(buf, size) do { if (!read_buf((buf), (size))) return __LINE__; } while(0)
|
#define READ_BUF(buf, size) do { if (!read_buf((buf), (size))) return __LINE__; } while(0)
|
||||||
|
|
||||||
if (!merge_mining_enabled()) {
|
|
||||||
READ_BYTE(m_majorVersion);
|
READ_BYTE(m_majorVersion);
|
||||||
READ_BYTE(m_minorVersion);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
READ_VARINT(m_majorVersion);
|
|
||||||
READ_VARINT(m_minorVersion);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_majorVersion > HARDFORK_SUPPORTED_VERSION) return __LINE__;
|
if (m_majorVersion > HARDFORK_SUPPORTED_VERSION) return __LINE__;
|
||||||
|
|
||||||
|
READ_BYTE(m_minorVersion);
|
||||||
if (m_minorVersion < m_majorVersion) return __LINE__;
|
if (m_minorVersion < m_majorVersion) return __LINE__;
|
||||||
|
|
||||||
READ_VARINT(m_timestamp);
|
READ_VARINT(m_timestamp);
|
||||||
READ_BUF(m_prevId.h, HASH_SIZE);
|
READ_BUF(m_prevId.h, HASH_SIZE);
|
||||||
|
|
||||||
|
if (merge_mining_enabled() && (m_minorVersion > 127)) return __LINE__;
|
||||||
|
|
||||||
const int nonce_offset = static_cast<int>(data - data_begin);
|
const int nonce_offset = static_cast<int>(data - data_begin);
|
||||||
READ_BUF(&m_nonce, NONCE_SIZE);
|
READ_BUF(&m_nonce, NONCE_SIZE);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user