From 9e65dba253b4b9897ab4eb566a7c4f0b005db01a Mon Sep 17 00:00:00 2001 From: tequ Date: Thu, 15 Jan 2026 14:32:47 +0900 Subject: [PATCH] fix redundant co-signed sponsor check --- src/xrpld/app/tx/detail/Transactor.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/xrpld/app/tx/detail/Transactor.cpp b/src/xrpld/app/tx/detail/Transactor.cpp index 27c90c65aa..241a8e2ea8 100644 --- a/src/xrpld/app/tx/detail/Transactor.cpp +++ b/src/xrpld/app/tx/detail/Transactor.cpp @@ -795,22 +795,20 @@ Transactor::checkSign( if (sigObject.isFieldPresent(sfSponsorSignature)) { + // Co-signed sponsorship + // Sanity check: already checked in preflight1 if (!sigObject.isFieldPresent(sfSponsor)) return tefINTERNAL; // LCOV_EXCL_LINE auto const sponsorObj = sigObject.getFieldObject(sfSponsor); - auto const isCoSigned = sigObject.isFieldPresent(sfSponsorSignature); - if (isCoSigned) - { - auto const sponsorAcc = sponsorObj.getAccountID(sfAccount); - auto const sponsorSignature = - sigObject.getFieldObject(sfSponsorSignature); - if (auto const ret = - checkSign(view, flags, {}, sponsorAcc, sponsorSignature, j); - !isTesSuccess(ret)) - return ret; - } + auto const sponsorAcc = sponsorObj.getAccountID(sfAccount); + auto const sponsorSignature = + sigObject.getFieldObject(sfSponsorSignature); + if (auto const ret = + checkSign(view, flags, {}, sponsorAcc, sponsorSignature, j); + !isTesSuccess(ret)) + return ret; } // If the pk is empty and not simulate or simulate and signers,