Reject invalid coin height and output index when loading assumeutxo

This commit is contained in:
MarcoFalke 2021-06-04 09:21:04 +02:00
parent 46424e943c
commit fa9ebedec3
No known key found for this signature in database
GPG key ID: CE2B75697E69A548
2 changed files with 8 additions and 3 deletions

View file

@ -4989,6 +4989,14 @@ bool ChainstateManager::PopulateAndValidateSnapshot(
coins_count - coins_left);
return false;
}
if (coin.nHeight > base_height ||
outpoint.n >= std::numeric_limits<decltype(outpoint.n)>::max() // Avoid integer wrap-around in coinstats.cpp:ApplyHash
) {
LogPrintf("[snapshot] bad snapshot data after deserializing %d coins\n",
coins_count - coins_left);
return false;
}
coins_cache.EmplaceCoinInternalDANGER(std::move(outpoint), std::move(coin));
--coins_left;