Skip to content

Commit

Permalink
Merge #11710: cli: Reject arguments to -getinfo
Browse files Browse the repository at this point in the history
Summary:
dcfef27 cli: Reject arguments to -getinfo (Wladimir J. van der Laan)

Pull request description:

  Currently it's possible to accidentally type e.g.

      bitcoin-cli -getinfo getbalance

  and get an answer which can be confusing; the trailing arguments are just ignored.

  To avoid this, throw an error if the user provides arguments to
  `-getinfo`.

Tree-SHA512: 3603e8fa852b884d1dd3b7462db40b092fe8b3390fd4384b4ee330315d797aff711e9f62990012fd4b5a55c8678734ba8497a5488a09ee6b65cf8a99017d6eb4

Backport of Core PR11710
bitcoin/bitcoin#11710

Please note, this is `./bitcoin-cli -getinfo`, NOT the deprecated/removed RPC call.

Test Plan:
  make check
  test_runner.py

Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc, markblundeberg

Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, markblundeberg

Subscribers: markblundeberg

Differential Revision: https://reviews.bitcoinabc.org/D3229
  • Loading branch information
laanwj authored and Nico Guiton committed Jun 6, 2019
1 parent 23a9331 commit 9dae9ed
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
1 change: 1 addition & 0 deletions doc/release-notes.md
Expand Up @@ -4,3 +4,4 @@ Bitcoin ABC version 0.19.8 is now available from:

This release includes the following features and fixes:
- Remove `getinfo` RPC in favor of `getblockchaininfo`, `getnetworkinfo` and `getwalletinfo`.
- `./bitcoin-cli -getinfo` will now throw a runtime error if there are any extra arguments after it.
3 changes: 3 additions & 0 deletions src/bitcoin-cli.cpp
Expand Up @@ -257,6 +257,9 @@ class GetinfoRequestHandler : public BaseRequestHandler {
/** Create a simulated `getinfo` request. */
UniValue PrepareRequest(const std::string &method,
const std::vector<std::string> &args) override {
if (!args.empty()) {
throw std::runtime_error("-getinfo takes no arguments");
}
UniValue result(UniValue::VARR);
result.push_back(
JSONRPCRequestObj("getnetworkinfo", NullUniValue, ID_NETWORKINFO));
Expand Down
6 changes: 5 additions & 1 deletion test/functional/interface_bitcoin_cli.py
Expand Up @@ -46,9 +46,13 @@ def run_test(self):
assert_raises_process_error(1, "incorrect rpcuser or rpcpassword", self.nodes[0].cli(
'-rpcuser={}'.format(user), '-stdin', '-stdinrpcpass', input="foo").echo)

self.log.info("Make sure that -getinfo with arguments fails")
assert_raises_process_error(
1, "-getinfo takes no arguments", self.nodes[0].cli('-getinfo').help)

self.log.info(
"Compare responses from `bitcoin-cli -getinfo` and the RPCs data is retrieved from.")
cli_get_info = self.nodes[0].cli('-getinfo').help()
cli_get_info = self.nodes[0].cli().send_cli('-getinfo')
wallet_info = self.nodes[0].getwalletinfo()
network_info = self.nodes[0].getnetworkinfo()
blockchain_info = self.nodes[0].getblockchaininfo()
Expand Down

0 comments on commit 9dae9ed

Please sign in to comment.