From 6b1a95d699533565d08508851c1cd619949afa68 Mon Sep 17 00:00:00 2001 From: PastaClaw Date: Sat, 2 May 2026 08:06:21 -0500 Subject: [PATCH] fix: validate spork signer before processing --- src/spork.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/spork.cpp b/src/spork.cpp index cf7408d49c59..82059e3e32b2 100644 --- a/src/spork.cpp +++ b/src/spork.cpp @@ -141,11 +141,19 @@ bool CSporkManager::IsSporkValid(const CSporkMessage& spork) bool CSporkManager::ProcessSpork(const CSporkMessage& spork) { + if (!IsSporkValid(spork)) { + return false; + } + + const auto opt_keyIDSigner = spork.GetSignerKeyID(); + if (!opt_keyIDSigner) { + return false; + } + const auto keyIDSigner = *opt_keyIDSigner; + uint256 hash = spork.GetHash(); std::string strLogMsg{strprintf("SPORK -- hash: %s id: %d value: %10d", hash.ToString(), spork.nSporkID, spork.nValue)}; - assert(spork.GetSignerKeyID().has_value()); - auto keyIDSigner = spork.GetSignerKeyID().value(); { LOCK(cs); // make sure to not lock this together with cs_main