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
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;