Don't allow relative -walletdir paths

Also warn if bitcoind is configured to use a relative -datadir path.

Specifying paths relative to the current working directory in a daemon process
can be dangerous, because files can fail to be located even if the
configuration doesn't change, but the daemon is started up differently.

Specifying a relative -datadir now adds a warning to the debug log. It would
not be backwards-compatible to forbid relative -datadir paths entirely, and it
could also be also inconvenient for command line testing.

Specifying a relative -walletdir now results in a startup error. But since the
-walletdir option is new in 0.16.0, there should be no compatibility issues.
Another reason not to use working directory paths for -walletdir specifically
is that the default -walletdir is a "wallets" subdirectory inside the datadir,
so it could be surprising that setting -walletdir manually would choose a
directory rooted in a completely different location.
This commit is contained in:
Russell Yanofsky
2018-01-18 13:15:00 -05:00
parent e839d6570d
commit ec527c6c88
7 changed files with 32 additions and 16 deletions

View File

@@ -90,9 +90,8 @@ bitcoin data directory. The behavior is now:
already exists in the data directory root, then wallets will be stored in the
`wallets/` subdirectory by default.
- The location of the wallets directory can be overridden by specifying a
`-walletdir=<path>` option where `<path>` can be an absolute path or a
relative path (relative to the current working directory). `<path>` can
also be a path to symlink to a directory.
`-walletdir=<path>` option where `<path>` can be an absolute path to a
directory or directory symlink.
Care should be taken when choosing the wallets directory location, as if it
becomes unavailable during operation, funds may be lost.