From b8be77244177d2d8ab7ec6518f9f63f3334e5326 Mon Sep 17 00:00:00 2001 From: Bart <11445373+bthomee@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:21:21 -0400 Subject: [PATCH] Charge peers for invalid data --- src/xrpld/app/ledger/detail/InboundLedger.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/xrpld/app/ledger/detail/InboundLedger.cpp b/src/xrpld/app/ledger/detail/InboundLedger.cpp index 75f2fcd50b..d84f0d370f 100644 --- a/src/xrpld/app/ledger/detail/InboundLedger.cpp +++ b/src/xrpld/app/ledger/detail/InboundLedger.cpp @@ -1088,12 +1088,22 @@ InboundLedger::processData(std::shared_ptr peer, protocol::TMLedgerData& p !takeAsRootNode(packet.nodes(1).nodedata(), san)) { JLOG(journal_.warn()) << "Included AS root invalid"; + if (san.isInvalid()) + { + peer->charge(Resource::kFeeInvalidData, "ledger_data invalid AS root"); + return -1; + } } if (!haveTransactions_ && (packet.nodes().size() > 2) && !takeTxRootNode(packet.nodes(2).nodedata(), san)) { JLOG(journal_.warn()) << "Included TX root invalid"; + if (san.isInvalid()) + { + peer->charge(Resource::kFeeInvalidData, "ledger_data invalid TX root"); + return -1; + } } } catch (std::exception const& ex)