From 14c11c385a5dc2ebce407b8dcbc96c8c3ddd88ca Mon Sep 17 00:00:00 2001 From: Greg Pfeil Date: Sat, 15 Apr 2023 15:02:41 -0600 Subject: [PATCH] Fix zcash-cli crash when printing help message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a `zcash-cli` command fails, it attempts to print the help message for the command. However, making the `help` call can also fail, and there was a bug in this check, so that we tried to display the help message when the `help` call failed, and tried to display the error when the `help` call succeeded – both leading to an assertion failure. This also makes some minor changes to the output formatting. Fixes #6561 --- src/bitcoin-cli.cpp | 6 +++--- src/rpc/client.cpp | 2 +- src/test/rpc_tests.cpp | 2 +- src/wallet/test/rpc_wallet_tests.cpp | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp index 5844469e7..2657e199c 100644 --- a/src/bitcoin-cli.cpp +++ b/src/bitcoin-cli.cpp @@ -212,12 +212,12 @@ UniValue ConvertValues(const std::string &strMethod, const std::vectorget_str()); + helpMsg.error().get_str())); } })); }) diff --git a/src/rpc/client.cpp b/src/rpc/client.cpp index 4c38b8cb5..3683d3dab 100644 --- a/src/rpc/client.cpp +++ b/src/rpc/client.cpp @@ -189,7 +189,7 @@ std::string FormatConversionFailure(const std::string& strMethod, const Conversi err.providedParams); }, [](const UnparseableParam& err) { - return std::string("Error parsing JSON:") + err.unparsedParam; + return std::string("Error parsing JSON: ") + err.unparsedParam; } }); } diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp index 209a78af0..9befebe96 100644 --- a/src/test/rpc_tests.cpp +++ b/src/test/rpc_tests.cpp @@ -404,7 +404,7 @@ BOOST_AUTO_TEST_CASE(rpc_insightexplorer) CheckRPCThrows("getblockhashes 1477641360 1477641360 {\"noOrphans\":true,\"logicalTimes\":1}", "JSON value is not a boolean as expected"); CheckRPCThrows("getblockhashes 1477641360 1477641360 {\"noOrphans\":True,\"logicalTimes\":false}", - "Error parsing JSON:{\"noOrphans\":True,\"logicalTimes\":false}"); + "Error parsing JSON: {\"noOrphans\":True,\"logicalTimes\":false}"); // revert fExperimentalInsightExplorer = false; diff --git a/src/wallet/test/rpc_wallet_tests.cpp b/src/wallet/test/rpc_wallet_tests.cpp index cd4b4454a..39475c566 100644 --- a/src/wallet/test/rpc_wallet_tests.cpp +++ b/src/wallet/test/rpc_wallet_tests.cpp @@ -1570,7 +1570,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_mergetoaddress_parameters) // bad from address CheckRPCThrows("z_mergetoaddress ** " + taddr2, - "Error parsing JSON:**"); + "Error parsing JSON: **"); // bad from address CheckRPCThrows("z_mergetoaddress [\"**\"] " + taddr2, @@ -1578,11 +1578,11 @@ BOOST_AUTO_TEST_CASE(rpc_z_mergetoaddress_parameters) // bad from address CheckRPCThrows("z_mergetoaddress " + taddr1 + " " + taddr2, - "Error parsing JSON:" + taddr1); + "Error parsing JSON: " + taddr1); // bad from address CheckRPCThrows("z_mergetoaddress [" + taddr1 + "] " + taddr2, - "Error parsing JSON:[" + taddr1 + "]"); + "Error parsing JSON: [" + taddr1 + "]"); // bad to address CheckRPCThrows("z_mergetoaddress [\"" + taddr1 + "\"] INVALID" + taddr2,