mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 19:15:54 +00:00
fix: Check for empty or zero VaultID in LoanBrokerSet
- Resolves RIPD-4067.
This commit is contained in:
@@ -915,6 +915,17 @@ class LoanBroker_test : public beast::unit_test::suite
|
|||||||
// test
|
// test
|
||||||
env(jv, txflags(tfFullyCanonicalSig), ter(temINVALID));
|
env(jv, txflags(tfFullyCanonicalSig), ter(temINVALID));
|
||||||
};
|
};
|
||||||
|
auto testZeroVaultID = [&](auto&& getTxJv) {
|
||||||
|
auto jv = getTxJv();
|
||||||
|
// empty broker ID
|
||||||
|
jv[sfVaultID] = "";
|
||||||
|
env(jv, ter(temINVALID));
|
||||||
|
// zero broker ID
|
||||||
|
jv[sfVaultID] = to_string(uint256{});
|
||||||
|
// needs a flag to distinguish the parsed STTx from the prior
|
||||||
|
// test
|
||||||
|
env(jv, txflags(tfFullyCanonicalSig), ter(temINVALID));
|
||||||
|
};
|
||||||
|
|
||||||
if (brokerTest == CoverDeposit)
|
if (brokerTest == CoverDeposit)
|
||||||
{
|
{
|
||||||
@@ -1058,6 +1069,12 @@ class LoanBroker_test : public beast::unit_test::suite
|
|||||||
set(alice, vaultInfo.vaultID),
|
set(alice, vaultInfo.vaultID),
|
||||||
loanBrokerID(brokerKeylet.key));
|
loanBrokerID(brokerKeylet.key));
|
||||||
});
|
});
|
||||||
|
// preflight: temINVALID (empty/zero vault id)
|
||||||
|
testZeroVaultID([&]() {
|
||||||
|
return env.json(
|
||||||
|
set(alice, vaultInfo.vaultID),
|
||||||
|
loanBrokerID(brokerKeylet.key));
|
||||||
|
});
|
||||||
|
|
||||||
if (asset.holds<Issue>())
|
if (asset.holds<Issue>())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -40,6 +40,12 @@ LoanBrokerSet::preflight(PreflightContext const& ctx)
|
|||||||
return temINVALID;
|
return temINVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (auto const vaultID = tx.at(~sfVaultID))
|
||||||
|
{
|
||||||
|
if (*vaultID == beast::zero)
|
||||||
|
return temINVALID;
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
auto const minimumZero = tx[~sfCoverRateMinimum].value_or(0) == 0;
|
auto const minimumZero = tx[~sfCoverRateMinimum].value_or(0) == 0;
|
||||||
auto const liquidationZero =
|
auto const liquidationZero =
|
||||||
|
|||||||
Reference in New Issue
Block a user