Skip to content

Commit 2ef5294

Browse files
committed
rpc: add RPCTypeCheck for getblockfrompeer inputs
1 parent 734b966 commit 2ef5294

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/rpc/blockchain.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,11 @@ static RPCHelpMan getblockfrompeer()
439439
},
440440
[&](const RPCHelpMan& self, const JSONRPCRequest& request) -> UniValue
441441
{
442+
RPCTypeCheck(request.params, {
443+
UniValue::VSTR, // blockhash
444+
UniValue::VNUM, // peer_id
445+
});
446+
442447
const NodeContext& node = EnsureAnyNodeContext(request.context);
443448
ChainstateManager& chainman = EnsureChainman(node);
444449
PeerManager& peerman = EnsurePeerman(node);

test/functional/rpc_getblockfrompeer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ def run_test(self):
5151

5252
self.log.info("Arguments must be valid")
5353
assert_raises_rpc_error(-8, "hash must be of length 64 (not 4, for '1234')", self.nodes[0].getblockfrompeer, "1234", peer_0_peer_1_id)
54-
assert_raises_rpc_error(-1, "JSON value is not a string as expected", self.nodes[0].getblockfrompeer, 1234, peer_0_peer_1_id)
55-
assert_raises_rpc_error(-1, "JSON value is not an integer as expected", self.nodes[0].getblockfrompeer, short_tip, "0")
54+
assert_raises_rpc_error(-3, "Expected type string, got number", self.nodes[0].getblockfrompeer, 1234, peer_0_peer_1_id)
55+
assert_raises_rpc_error(-3, "Expected type number, got string", self.nodes[0].getblockfrompeer, short_tip, "0")
5656

5757
self.log.info("We must already have the header")
5858
assert_raises_rpc_error(-1, "Block header missing", self.nodes[0].getblockfrompeer, "00" * 32, 0)

0 commit comments

Comments
 (0)