max scale to 16 (4096 bytes)

This commit is contained in:
tequ
2025-10-22 13:44:51 +09:00
parent 33a045ef78
commit eb2399bae8
3 changed files with 8 additions and 6 deletions

View File

@@ -191,7 +191,8 @@ SetAccount::preflight(PreflightContext const& ctx)
return temMALFORMED;
uint16_t scale = tx.getFieldU16(sfHookStateScale);
if (scale == 0 || scale > 8) // Min: 1, Max: 8 (256 * 8 = 2048 bytes)
if (scale == 0 ||
scale > 16) // Min: 1, Max: 16 (256 * 16 = 4096 bytes)
return temMALFORMED;
}

View File

@@ -13454,6 +13454,7 @@ SETHOOK_TEST(4, false)
SETHOOK_TEST(5, false)
SETHOOK_TEST(6, true)
BEAST_DEFINE_TESTSUITE_PRIO(SetHook0, app, ripple, 2);
BEAST_DEFINE_TESTSUITE_PRIO(SetHook1, app, ripple, 2);
BEAST_DEFINE_TESTSUITE_PRIO(SetHook2, app, ripple, 2);
BEAST_DEFINE_TESTSUITE_PRIO(SetHook3, app, ripple, 2);

View File

@@ -597,8 +597,8 @@ public:
env.enableFeature(featureExtendedHookState);
env.close();
// set invalid HookStateScale (0 or > 8)
for (uint16_t scale : {0, 9})
// set invalid HookStateScale (0 or > 16)
for (uint16_t scale : {0, 17})
{
jt[sfHookStateScale.fieldName] = scale;
env(jt, ter(temMALFORMED));
@@ -610,11 +610,11 @@ public:
env.close();
BEAST_EXPECT(!env.le(alice)->isFieldPresent(sfHookStateScale));
// set HookStateScale to 8
jt[sfHookStateScale.fieldName] = 8;
// set HookStateScale to 16
jt[sfHookStateScale.fieldName] = 16;
env(jt);
env.close();
BEAST_EXPECT(env.le(alice)->getFieldU16(sfHookStateScale) == 8);
BEAST_EXPECT(env.le(alice)->getFieldU16(sfHookStateScale) == 16);
// reset HookStateScale
jt[sfHookStateScale.fieldName] = 1;