Merge pull request #3724 from patricklodder/1.14.9-cmpctblk-fix

1.14.9: change asserts into handled failures for cmpctblk
This commit is contained in:
chromatic 2024-11-30 11:23:00 -08:00 committed by GitHub
commit 8d7fbf2fde
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -53,7 +53,10 @@ ReadStatus PartiallyDownloadedBlock::InitData(const CBlockHeaderAndShortTxIDs& c
if (cmpctblock.shorttxids.size() + cmpctblock.prefilledtxn.size() > MAX_BLOCK_BASE_SIZE / MIN_TRANSACTION_BASE_SIZE)
return READ_STATUS_INVALID;
assert(header.IsNull() && txn_available.empty());
if (!header.IsNull() || !txn_available.empty()) {
return READ_STATUS_FAILED;
}
header = cmpctblock.header;
txn_available.resize(cmpctblock.BlockTxCount());
@ -170,13 +173,19 @@ ReadStatus PartiallyDownloadedBlock::InitData(const CBlockHeaderAndShortTxIDs& c
}
bool PartiallyDownloadedBlock::IsTxAvailable(size_t index) const {
assert(!header.IsNull());
if (header.IsNull()) {
return false;
}
assert(index < txn_available.size());
return txn_available[index] ? true : false;
}
ReadStatus PartiallyDownloadedBlock::FillBlock(CBlock& block, const std::vector<CTransactionRef>& vtx_missing) {
assert(!header.IsNull());
if (header.IsNull()) {
return READ_STATUS_INVALID;
}
uint256 hash = header.GetHash();
block = header;
block.vtx.resize(txn_available.size());