Require CBlockIndex::GetUndoPos() to hold mutex cs_main

This commit is contained in:
Jon Atack 2021-09-09 18:48:22 +02:00
parent 2e557ced28
commit 572393448b
No known key found for this signature in database
GPG Key ID: 796C4109063D4EAF
2 changed files with 4 additions and 2 deletions

View File

@ -237,8 +237,9 @@ public:
return ret;
}
FlatFilePos GetUndoPos() const
FlatFilePos GetUndoPos() const EXCLUSIVE_LOCKS_REQUIRED(::cs_main)
{
AssertLockHeld(::cs_main);
FlatFilePos ret;
if (nStatus & BLOCK_HAVE_UNDO) {
ret.nFile = nFile;

View File

@ -513,7 +513,8 @@ static bool UndoWriteToDisk(const CBlockUndo& blockundo, FlatFilePos& pos, const
bool UndoReadFromDisk(CBlockUndo& blockundo, const CBlockIndex* pindex)
{
FlatFilePos pos = pindex->GetUndoPos();
const FlatFilePos pos{WITH_LOCK(::cs_main, return pindex->GetUndoPos())};
if (pos.IsNull()) {
return error("%s: no undo data available", __func__);
}