From ddc15ad61258cfc2ae3ccbd086ea161c111759b7 Mon Sep 17 00:00:00 2001 From: Bart <11445373+bthomee@users.noreply.github.com> Date: Sun, 1 Mar 2026 14:48:27 -0500 Subject: [PATCH] Copilot review feedback --- src/libxrpl/shamap/SHAMapSync.cpp | 13 +++++++++++++ src/test/shamap/SHAMapSync_test.cpp | 4 ++++ src/xrpld/app/ledger/detail/LedgerNodeHelpers.h | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/libxrpl/shamap/SHAMapSync.cpp b/src/libxrpl/shamap/SHAMapSync.cpp index 8b3b0c1095..f6936cdccc 100644 --- a/src/libxrpl/shamap/SHAMapSync.cpp +++ b/src/libxrpl/shamap/SHAMapSync.cpp @@ -486,6 +486,13 @@ SHAMap::addRootNode( intr_ptr::SharedPtr rootNode, SHAMapSyncFilter const* filter) { + XRPL_ASSERT(rootNode, "xrpl::SHAMap::addKnownNode : non-null root node"); + if (!rootNode) + { + JLOG(journal_.error()) << "Null node received"; + return SHAMapAddNode::invalid(); + } + // we already have a root_ node if (root_->getHash().isNonZero()) { @@ -527,6 +534,12 @@ SHAMap::addKnownNode( SHAMapSyncFilter const* filter) { XRPL_ASSERT(!nodeID.isRoot(), "xrpl::SHAMap::addKnownNode : valid node input"); + XRPL_ASSERT(treeNode, "xrpl::SHAMap::addKnownNode : non-null tree node"); + if (!treeNode) + { + JLOG(journal_.error()) << "Null node received"; + return SHAMapAddNode::invalid(); + } if (!isSynching()) { diff --git a/src/test/shamap/SHAMapSync_test.cpp b/src/test/shamap/SHAMapSync_test.cpp index be703ae64c..1b08f7211b 100644 --- a/src/test/shamap/SHAMapSync_test.cpp +++ b/src/test/shamap/SHAMapSync_test.cpp @@ -110,6 +110,8 @@ public: unexpected(a.size() < 1, "NodeSize"); auto node = SHAMapTreeNode::makeFromWire(makeSlice(std::get<1>(a[0]))); + if (!node) + fail("", __FILE__, __LINE__); BEAST_EXPECT( destination.addRootNode(source.getHash(), std::move(node), nullptr).isGood()); } @@ -148,6 +150,8 @@ public: // non-deterministic number of times and the number of tests run // should be deterministic auto node = SHAMapTreeNode::makeFromWire(makeSlice(std::get<1>(b[i]))); + if (!node) + fail("", __FILE__, __LINE__); if (!destination.addKnownNode(std::get<0>(b[i]), std::move(node), nullptr) .isUseful()) fail("", __FILE__, __LINE__); diff --git a/src/xrpld/app/ledger/detail/LedgerNodeHelpers.h b/src/xrpld/app/ledger/detail/LedgerNodeHelpers.h index df3dbf3042..1e61d62adf 100644 --- a/src/xrpld/app/ledger/detail/LedgerNodeHelpers.h +++ b/src/xrpld/app/ledger/detail/LedgerNodeHelpers.h @@ -26,7 +26,7 @@ namespace xrpl { * @param ledger_node The ledger node to validate. * @return true if the ledger node has the expected fields, false otherwise. */ -bool +[[nodiscard]] bool validateLedgerNode(protocol::TMLedgerNode const& ledger_node); /**