Handle Flags not present in LoanManage

- Addresses RIPD-3418
This commit is contained in:
Ed Hennis
2025-09-16 19:31:01 -04:00
parent 70755ed1d3
commit 1fbd3fcfa4
2 changed files with 7 additions and 1 deletions

View File

@@ -658,6 +658,12 @@ class Loan_test : public beast::unit_test::suite
// Manage the loan
// no-op
env(manage(lender, keylet.key, 0));
{
// no flags
auto jt = manage(lender, keylet.key, 0);
jt.removeMember(sfFlags.getName());
env(jt);
}
// Only the lender can manage
env(manage(evan, keylet.key, 0), ter(tecNO_PERMISSION));
// unknown flags

View File

@@ -64,7 +64,7 @@ LoanManage::preflight(PreflightContext const& ctx)
return temINVALID;
// Flags are mutually exclusive
auto const flags = ctx.tx[sfFlags] & tfUniversalMask;
auto const flags = ctx.tx[~sfFlags].value_or(0) & tfUniversalMask;
if ((flags & (flags - 1)) != 0)
{
JLOG(ctx.j.warn())