From 6c97d2ec7e3cab4ad16df170f6bebe90eda5ca32 Mon Sep 17 00:00:00 2001 From: Bronek Kozicki Date: Thu, 1 May 2025 10:09:49 +0100 Subject: [PATCH] Update addEmptyHolding from review Co-authored-by: Ed Hennis --- src/xrpld/ledger/detail/View.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/xrpld/ledger/detail/View.cpp b/src/xrpld/ledger/detail/View.cpp index 6f8e7c6c24..34d61e5c63 100644 --- a/src/xrpld/ledger/detail/View.cpp +++ b/src/xrpld/ledger/detail/View.cpp @@ -1153,18 +1153,22 @@ addEmptyHolding( auto const& dstId = accountID; auto const high = srcId > dstId; auto const index = keylet::line(srcId, dstId, currency); - auto const sle = view.peek(keylet::account(accountID)); - if (!sle) + auto const sleSrc = view.peek(keylet::account(srcId)); + auto const sleDst = view.peek(keylet::account(dstId)); + if (!sleDst || !sleSrc) return tefINTERNAL; - if ((sle->getFlags() & lsfDefaultRipple) == 0) + if (!sleSrc->isFlag(lsfDefaultRipple)) return tecINTERNAL; + // If the line already exists, don't create it again. + if (view.read(index)) + return tecDUPLICATE; return trustCreate( view, high, srcId, dstId, index.key, - sle, + sleDst, /*auth=*/false, /*noRipple=*/true, /*freeze=*/false,