Do not use isIntegral()

This commit is contained in:
Bronek Kozicki
2025-05-06 19:57:15 +01:00
parent aead1bfb3d
commit ac0e4dec96
3 changed files with 26 additions and 2 deletions

View File

@@ -2802,6 +2802,18 @@ class Vault_test : public beast::unit_test::suite
"malformedRequest");
}
{
testcase("RPC ledger_entry bool seq");
Json::Value jvParams;
jvParams[jss::ledger_index] = jss::validated;
jvParams[jss::vault][jss::owner] = issuer.human();
jvParams[jss::vault][jss::seq] = true;
auto jvVault = env.rpc("json", "ledger_entry", to_string(jvParams));
BEAST_EXPECT(
jvVault[jss::result][jss::error].asString() ==
"malformedRequest");
}
{
testcase("RPC account_objects");
@@ -2933,6 +2945,17 @@ class Vault_test : public beast::unit_test::suite
jv[jss::result][jss::error].asString() == "malformedRequest");
}
{
testcase("RPC vault_info json bool sequence");
Json::Value jvParams;
jvParams[jss::ledger_index] = jss::validated;
jvParams[jss::owner] = owner.human();
jvParams[jss::seq] = true;
auto jv = env.rpc("json", "vault_info", to_string(jvParams));
BEAST_EXPECT(
jv[jss::result][jss::error].asString() == "malformedRequest");
}
{
testcase("RPC vault_info json malformed owner");
Json::Value jvParams;

View File

@@ -720,7 +720,8 @@ parseVault(Json::Value const& params, Json::Value& jvResult)
}
if (!params.isMember(jss::owner) || !params.isMember(jss::seq) ||
!params[jss::seq].isIntegral() || params[jss::seq].asDouble() <= 0.0 ||
!(params[jss::seq].isInt() || params[jss::seq].isUInt()) ||
params[jss::seq].asDouble() <= 0.0 ||
params[jss::seq].asDouble() > double(Json::Value::maxUInt))
{
jvResult[jss::error] = "malformedRequest";

View File

@@ -55,7 +55,7 @@ parseVault(Json::Value const& params, Json::Value& jvResult)
return std::nullopt;
}
else if (
!params[jss::seq].isIntegral() ||
!(params[jss::seq].isInt() || params[jss::seq].isUInt()) ||
params[jss::seq].asDouble() <= 0.0 ||
params[jss::seq].asDouble() > double(Json::Value::maxUInt))
{