diff --git a/src/validation.cpp b/src/validation.cpp --- a/src/validation.cpp +++ b/src/validation.cpp @@ -6702,6 +6702,12 @@ coins_count - coins_left); return false; } + if (!MoneyRange(coin.GetTxOut().nValue)) { + LogPrintf("[snapshot] bad snapshot data after deserializing %d " + "coins - bad tx out value\n", + coins_count - coins_left); + return false; + } coins_cache.EmplaceCoinInternalDANGER(std::move(outpoint), std::move(coin));