Take mempool locks when doing compact block RPC calls touching mempool

This commit is contained in:
Gregory Sanders 2019-10-09 12:11:52 -04:00
parent ee14d88de2
commit 67a669e692

View file

@ -1245,6 +1245,7 @@ UniValue consumecompactsketch(const JSONRPCRequest& request)
CBlockHeaderAndShortTxIDs cmpctblock;
ssBlock >> cmpctblock;
LOCK(mempool.cs);
PartiallyDownloadedBlock partialBlock(&mempool);
const std::vector<std::pair<uint256, CTransactionRef>> dummy;
ReadStatus status = partialBlock.InitData(cmpctblock, dummy);
@ -1376,6 +1377,7 @@ UniValue finalizecompactblock(const JSONRPCRequest& request)
found.insert(found.end(), transactions.txn.begin(), transactions.txn.end());
// Now construct the final block!
LOCK(mempool.cs);
PartiallyDownloadedBlock partialBlock(&mempool);
const std::vector<std::pair<uint256, CTransactionRef>> dummy;