mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 11:57:28 -03:00
fuzz: Reduce maintenance requirements by allowing RPC annotations also for conditionally available RPC commands (such as wallet commands) without the fragility of #ifdef forests
This commit is contained in:
parent
54549dda31
commit
5252f86eb6
1 changed files with 0 additions and 18 deletions
|
@ -68,17 +68,13 @@ const std::vector<std::string> RPC_COMMANDS_NOT_SAFE_FOR_FUZZING{
|
|||
"addpeeraddress", // avoid DNS lookups
|
||||
"analyzepsbt", // avoid signed integer overflow in CFeeRate::GetFee(unsigned long) (https://github.com/bitcoin/bitcoin/issues/20607)
|
||||
"dumptxoutset", // avoid writing to disk
|
||||
#ifdef ENABLE_WALLET
|
||||
"dumpwallet", // avoid writing to disk
|
||||
#endif
|
||||
"echoipc", // avoid assertion failure (Assertion `"EnsureAnyNodeContext(request.context).init" && check' failed.)
|
||||
"generatetoaddress", // avoid prohibitively slow execution (when `num_blocks` is large)
|
||||
"generatetodescriptor", // avoid prohibitively slow execution (when `nblocks` is large)
|
||||
"gettxoutproof", // avoid prohibitively slow execution
|
||||
#ifdef ENABLE_WALLET
|
||||
"importwallet", // avoid reading from disk
|
||||
"loadwallet", // avoid reading from disk
|
||||
#endif
|
||||
"prioritisetransaction", // avoid signed integer overflow in CTxMemPool::PrioritiseTransaction(uint256 const&, long const&) (https://github.com/bitcoin/bitcoin/issues/20626)
|
||||
"savemempool", // disabled as a precautionary measure: may take a file path argument in the future
|
||||
"setban", // avoid DNS lookups
|
||||
|
@ -332,20 +328,6 @@ void initialize_rpc()
|
|||
std::terminate();
|
||||
}
|
||||
}
|
||||
for (const std::string& rpc_command : RPC_COMMANDS_SAFE_FOR_FUZZING) {
|
||||
const bool supported_rpc_command = std::find(supported_rpc_commands.begin(), supported_rpc_commands.end(), rpc_command) != supported_rpc_commands.end();
|
||||
if (!supported_rpc_command) {
|
||||
std::cerr << "Error: Unknown RPC command \"" << rpc_command << "\" found in RPC_COMMANDS_SAFE_FOR_FUZZING. Please update " << __FILE__ << ".\n";
|
||||
std::terminate();
|
||||
}
|
||||
}
|
||||
for (const std::string& rpc_command : RPC_COMMANDS_NOT_SAFE_FOR_FUZZING) {
|
||||
const bool supported_rpc_command = std::find(supported_rpc_commands.begin(), supported_rpc_commands.end(), rpc_command) != supported_rpc_commands.end();
|
||||
if (!supported_rpc_command) {
|
||||
std::cerr << "Error: Unknown RPC command \"" << rpc_command << "\" found in RPC_COMMANDS_NOT_SAFE_FOR_FUZZING. Please update " << __FILE__ << ".\n";
|
||||
std::terminate();
|
||||
}
|
||||
}
|
||||
const char* limit_to_rpc_command_env = std::getenv("LIMIT_TO_RPC_COMMAND");
|
||||
if (limit_to_rpc_command_env != nullptr) {
|
||||
g_limit_to_rpc_command = std::string{limit_to_rpc_command_env};
|
||||
|
|
Loading…
Reference in a new issue