diff --git a/src/xrpld/app/tx/detail/LoanBroker.cpp b/src/xrpld/app/tx/detail/LoanBroker.cpp index 19aeb8bb28..34ac65f3fd 100644 --- a/src/xrpld/app/tx/detail/LoanBroker.cpp +++ b/src/xrpld/app/tx/detail/LoanBroker.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -68,11 +69,11 @@ LoanBrokerSet::doPreflight(PreflightContext const& ctx) auto const& tx = ctx.tx; if (!validDataLength(tx[~sfData], maxDataPayloadLength)) return temINVALID; - if (!validNumericRange(tx[~sfManagementFeeRate], 0, maxFeeRate)) + if (!validNumericRange(tx[~sfManagementFeeRate], maxFeeRate)) return temINVALID; - if (!validNumericRange(tx[~sfCoverRateMinimum], 0, maxCoverRate)) + if (!validNumericRange(tx[~sfCoverRateMinimum], maxCoverRate)) return temINVALID; - if (!validNumericRange(tx[~sfCoverRateLiquidation], 0, maxCoverRate)) + if (!validNumericRange(tx[~sfCoverRateLiquidation], maxCoverRate)) return temINVALID; if (tx.isFieldPresent(sfLoanBrokerID)) @@ -187,7 +188,7 @@ LoanBrokerSet::doApply() broker->at(sfData) = *data; if (auto const rate = tx[~sfManagementFeeRate]) broker->at(sfManagementFeeRate) = *rate; - if (auto const debtMax = tx[~sfDebtMaximum]; debtMax && *debtMax) + if (auto const debtMax = tx[~sfDebtMaximum]; debtMax) broker->at(sfDebtMaximum) = *debtMax; if (auto const coverMin = tx[~sfCoverRateMinimum]) broker->at(sfCoverRateMinimum) = *coverMin; diff --git a/src/xrpld/app/tx/detail/Transactor.h b/src/xrpld/app/tx/detail/Transactor.h index ecabf9fdfe..1bb0853516 100644 --- a/src/xrpld/app/tx/detail/Transactor.h +++ b/src/xrpld/app/tx/detail/Transactor.h @@ -217,7 +217,7 @@ protected: template static bool - validNumericRange(std::optional value, T min, T max); + validNumericRange(std::optional value, T max, T min = {}); private: std::pair