mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-13 11:35:20 +01:00
rpc: Validate -rpcauth arguments
This commit is contained in:
parent
d37c813a43
commit
46001323b1
2 changed files with 13 additions and 3 deletions
|
@ -253,11 +253,14 @@ static bool InitRPCAuthentication()
|
|||
if (gArgs.GetArg("-rpcauth","") != "")
|
||||
{
|
||||
LogPrintf("Using rpcauth authentication.\n");
|
||||
for (std::string rpcauth : gArgs.GetArgs("-rpcauth")) {
|
||||
for (const std::string& rpcauth : gArgs.GetArgs("-rpcauth")) {
|
||||
std::vector<std::string> fields;
|
||||
boost::split(fields, rpcauth, boost::is_any_of(":$"));
|
||||
if (fields.size() == 3) {
|
||||
g_rpcauth.push_back(fields);
|
||||
} else {
|
||||
LogPrintf("Invalid -rpcauth argument.\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -99,11 +99,18 @@ class HTTPBasicsTest(BitcoinTestFramework):
|
|||
|
||||
self.test_auth(self.nodes[1], self.rpcuser, self.rpcpassword)
|
||||
|
||||
self.log.info('Check that failure to write cookie file will abort the node gracefully')
|
||||
init_error = 'Error: Unable to start HTTP server. See debug log for details.'
|
||||
|
||||
self.log.info('Check -rpcauth are validated')
|
||||
# Empty -rpcauth= are ignored
|
||||
self.restart_node(0, extra_args=['-rpcauth='])
|
||||
self.stop_node(0)
|
||||
self.nodes[0].assert_start_raises_init_error(expected_msg=init_error, extra_args=['-rpcauth=foo'])
|
||||
self.nodes[0].assert_start_raises_init_error(expected_msg=init_error, extra_args=['-rpcauth=foo:bar'])
|
||||
|
||||
self.log.info('Check that failure to write cookie file will abort the node gracefully')
|
||||
cookie_file = os.path.join(get_datadir_path(self.options.tmpdir, 0), self.chain, '.cookie.tmp')
|
||||
os.mkdir(cookie_file)
|
||||
init_error = 'Error: Unable to start HTTP server. See debug log for details.'
|
||||
self.nodes[0].assert_start_raises_init_error(expected_msg=init_error)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue