The current rpcauth parsing behavior is inconsistent and unintuitive (see #29141 (comment) and additional details below).
The current behavior inconsistently treats empty rpcauth as an error (or not) depending on the location within CLI/bitcoin.conf and the location of adjacent valid rpcauth params.
Empty rpcauth is now consistently treated as an error and prevents bitcoind from starting.
Continuation of the upforgrabs PR #29141.
Additional details:
Current rpcauth behavior is nonsensical:
- If an empty rpcauthargument was specified as the last command line argument, it would cause all otherrpcautharguments to be ignored.
- If an empty rpcauthargument was specified on the command line followed by any nonemptyrpcauthargument, it would cause an error.
- If an empty rpcauth=line was specified after non-empty rpcauth line in the config file it would cause an error.
- If an empty rpcauth=line in a config file was first it would cause other rpcauth entries in the config file to be ignored, unless there were-rpcauthcommand line arguments and the last one was nonempty, in which case it would cause an error.
New behavior is simple:
- If an empty rpcauth config line or command line argument is used it will cause an error