From c6aba4ac06ce1fac7adaef0bd2493b998d109134 Mon Sep 17 00:00:00 2001 From: James Dorfman Date: Fri, 10 May 2024 05:42:15 +0000 Subject: [PATCH] CI: fix integer underflow bug --- src/validation.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/validation.cpp b/src/validation.cpp index a6bcfb19db..9702071a3b 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -2587,7 +2587,10 @@ bool CChainState::FlushStateToDisk( (*it)->set_stored(); } - int trim_height = pindexBestHeader ? pindexBestHeader->nHeight - node::nMustKeepFullHeaders : 0; + int trim_height = 0; + if (pindexBestHeader && (uint64_t)pindexBestHeader->nHeight > node::nMustKeepFullHeaders) { // check first, to prevent underflow + trim_height = pindexBestHeader->nHeight - node::nMustKeepFullHeaders; + } if (node::fTrimHeaders && trim_height > 0 && !ShutdownRequested()) { static int nMinTrimHeight{0}; LogPrintf("Flushing block index, trimming headers, setTrimmableBlockIndex.size(): %d\n", setTrimmableBlockIndex.size());