aboutsummaryrefslogtreecommitdiff
path: root/src/rpc/request.h
diff options
context:
space:
mode:
authorRussell Yanofsky <russ@yanofsky.org>2021-01-29 18:15:48 -0500
committerRussell Yanofsky <russ@yanofsky.org>2021-01-29 18:15:48 -0500
commit9048c58e10841d9e1d709c0a325dd14684cec325 (patch)
treeaa399e99d405412a1205c6eec856d5a886b21dc7 /src/rpc/request.h
parent14f3d9b908ed9e78997bfaad3d8a06357a89d46e (diff)
downloadbitcoin-9048c58e10841d9e1d709c0a325dd14684cec325.tar.xz
Remove pointer cast in CRPCTable::dumpArgMap
CRPCTable::dumpArgMap currently works by casting RPC command unique_id integer field to a function pointer, and then calling the function. The unique_id field wasn't supposed to be used this way (it's meant to be used to detect RPC aliases), and this code segfaults in the rpc_help.py test in multiprocess PR https://github.com/bitcoin/bitcoin/pull/10102 because wallet RPC functions aren't directly accessible from the node process. Fix this by adding a new GET_ARGS request mode to retrieve argument information similar to the way the GET_HELP mode retrieves help information.
Diffstat (limited to 'src/rpc/request.h')
-rw-r--r--src/rpc/request.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/rpc/request.h b/src/rpc/request.h
index 1751c24cd3..27d06f3c92 100644
--- a/src/rpc/request.h
+++ b/src/rpc/request.h
@@ -34,7 +34,7 @@ public:
UniValue id;
std::string strMethod;
UniValue params;
- enum Mode { EXECUTE, GET_HELP } mode = EXECUTE;
+ enum Mode { EXECUTE, GET_HELP, GET_ARGS } mode = EXECUTE;
std::string URI;
std::string authUser;
std::string peerAddr;