From 717bdf5eb5e22d3ade0e6a5cf489a46d2a52e9f5 Mon Sep 17 00:00:00 2001 From: Zygo Blaxell Date: Mon, 6 Feb 2023 22:46:46 -0500 Subject: [PATCH] roots: make sure transid_max's computed value isn't max We check the result of transid_max_nocache(), but not the result of transid_max(). The latter is a computed result that is even more likely to be wrong[citation needed]. Signed-off-by: Zygo Blaxell --- src/bees-roots.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/bees-roots.cc b/src/bees-roots.cc index 0276b51..7cfcd2b 100644 --- a/src/bees-roots.cc +++ b/src/bees-roots.cc @@ -515,7 +515,12 @@ BeesRoots::transid_max_nocache() uint64_t BeesRoots::transid_max() { - return m_transid_re.count(); + const auto rv = m_transid_re.count(); + // transid must be greater than zero, or we did something very wrong + THROW_CHECK1(runtime_error, rv, rv > 0); + // transid must be less than max, or we did something very wrong + THROW_CHECK1(runtime_error, rv, rv < numeric_limits::max()); + return rv; } struct BeesFileCrawl {