elements/src
Wladimir J. van der Laan afa506f6eb
Merge #14552: wallet: detecting duplicate wallet by comparing the db filename.
591203149f wallet: Create IsDatabaseLoaded function (Chun Kuan Lee)
15c93f075a wallet: Add trailing wallet.dat when detecting duplicate wallet if it's a directory. (Chun Kuan Lee)
c456fbd8df Refactor: Move m_db pointers into BerkeleyDatabase (Russell Yanofsky)

Pull request description:

  Fix #14538

  Fix crash attempting to load the same wallet with different path strings that resolve to the same absolute path. The primary check which prevents loading the same wallet twice is:

  6b8d0a2164/src/wallet/db.cpp (L44)

  But this check is skipped if both wallet paths resolve to the same absolute path, due to caching here:

  6b8d0a2164/src/wallet/db.cpp (L467)

  Meanwhile a secondary check for duplicate wallets is not reliable because it based on a literal comparison, instead of comparison using absolute paths:

  6b8d0a2164/src/wallet/wallet.cpp (L3853)

  This PR fixes the latter check to compare the absolute path of a new wallet being loaded to absolute paths of wallets already loaded, so there should no longer be any way to load the same wallet more than once.

Tree-SHA512: 2fa01811c160b57be3b76c6b4983556a04bbce71a3f8202429987ec020664a062e897deedcd9248bc04e9baaa2fc7b464e2595dcaeff2af0818387bf1fcdbf6f
2018-11-20 15:15:59 +01:00
..
bench Merge #13815: util: Add [[nodiscard]] to all {Decode,Parse}[...](...) functions returning bool 2018-11-15 14:39:37 -05:00
compat Merge #13665: [build] Add risc-v support to gitian 2018-08-16 20:33:50 +02:00
config
consensus scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
crypto Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
index scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
interfaces Remove unreferenced boost headers 2018-11-16 03:20:44 +00:00
leveldb Merge leveldb subtree 2018-08-09 11:31:45 -04:00
obj
obj-test
policy Merge #14636: Avoid using numeric_limits for sequence numbers and lock times 2018-11-07 11:15:22 -05:00
primitives scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
qt Merge #14478: Show error to user when corrupt wallet unlock fails 2018-11-14 11:27:01 -05:00
rpc Merge #14718: Remove unreferenced boost headers 2018-11-19 13:50:16 -05:00
script Merge #13815: util: Add [[nodiscard]] to all {Decode,Parse}[...](...) functions returning bool 2018-11-15 14:39:37 -05:00
secp256k1 Bump secp256k1 subtree 2017-09-29 16:02:39 +02:00
support Fix typos reported by codespell 2018-09-04 13:11:26 +02:00
test Merge #14685: fix a deserialization overflow edge case 2018-11-18 10:15:18 +01:00
univalue Update univalue subtree 2018-09-07 08:21:14 -04:00
util Merge #14718: Remove unreferenced boost headers 2018-11-19 13:50:16 -05:00
wallet Merge #14552: wallet: detecting duplicate wallet by comparing the db filename. 2018-11-20 15:15:59 +01:00
zmq rpc: Include rpc/util.h where needed for RPCHelpMan 2018-11-09 12:37:06 -05:00
.clang-format Fix inconsistent namespace formatting guidelines 2018-04-13 15:37:20 -04:00
addrdb.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
addrdb.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
addrman.cpp Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
addrman.h scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
amount.h amount: Move CAmount CENT to unit test header 2018-09-17 14:34:56 -04:00
arith_uint256.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
arith_uint256.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
attributes.h Add NODISCARD to all {Decode,Parse}[...](...) functions returning bool. Sort includes. 2018-11-05 17:03:11 +01:00
base58.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
base58.h Add NODISCARD to all {Decode,Parse}[...](...) functions returning bool. Sort includes. 2018-11-05 17:03:11 +01:00
bech32.cpp Make objects in range declarations immutable by default. Avoid unnecessary copying of objects in range declarations. 2018-08-27 18:19:33 +02:00
bech32.h Fix missing or inconsistent include guards 2018-03-22 16:23:04 +01:00
bitcoin-cli-res.rc
bitcoin-cli.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
bitcoin-tx-res.rc
bitcoin-tx.cpp Merge #14636: Avoid using numeric_limits for sequence numbers and lock times 2018-11-07 11:15:22 -05:00
bitcoind-res.rc
bitcoind.cpp Pass chain and client variables where needed 2018-11-06 11:44:40 -04:00
blockencodings.cpp Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
blockencodings.h disallow oversized CBlockHeaderAndShortTxIDs 2018-11-13 12:41:41 -08:00
blockfilter.cpp Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
blockfilter.h blockfilter: Use unordered_set instead of set in blockfilter. 2018-11-05 09:30:56 -08:00
bloom.cpp Merge #13429: Return the script type from Solver 2018-08-25 17:41:00 +02:00
bloom.h Removes unsed CBloomFilter constructor. 2018-08-13 01:24:55 +02:00
chain.cpp Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
chain.h [trivial] Fix typo in CDiskBlockPos struct's ToString 2018-08-14 18:03:43 -05:00
chainparams.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
chainparams.h Don't edit Chainparams after initialization 2018-09-23 22:58:54 +02:00
chainparamsbase.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
chainparamsbase.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
chainparamsseeds.h net: Update hardcoded seeds 2018-08-13 13:57:15 +02:00
checkpoints.cpp Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
checkpoints.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
checkqueue.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
clientversion.cpp Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
clientversion.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
coins.cpp Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
coins.h Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
compat.h Make IS_TRIVIALLY_CONSTRUCTIBLE consistent on GCC < 5 2018-08-23 10:38:59 -07:00
compressor.cpp Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
compressor.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
core_io.h Add NODISCARD to all {Decode,Parse}[...](...) functions returning bool. Sort includes. 2018-11-05 17:03:11 +01:00
core_memusage.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
core_read.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
core_write.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
cuckoocache.h Make objects in range declarations immutable by default. Avoid unnecessary copying of objects in range declarations. 2018-08-27 18:19:33 +02:00
dbwrapper.cpp Fix typos reported by codespell 2018-09-04 13:11:26 +02:00
dbwrapper.h scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
dummywallet.cpp Remove direct node->wallet calls in init.cpp 2018-11-06 11:44:40 -04:00
fs.cpp utils: Fix broken Windows filelock 2018-10-19 02:29:25 +08:00
fs.h revert removal of fstream.hpp header in fs.h 2018-11-20 14:41:12 +09:00
hash.cpp Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
hash.h Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
httprpc.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
httprpc.h Cleanup StartRest() 2018-08-11 09:34:47 +03:00
httpserver.cpp Add SAFE_CHARS[SAFE_CHARS_URI]: Chars allowed in URIs (RFC 3986) 2018-11-05 13:27:04 +01:00
httpserver.h convert C-style (void) parameter lists to C++ style () 2018-09-13 10:36:41 -07:00
indirectmap.h
init.cpp Remove direct node->wallet calls in init.cpp 2018-11-06 11:44:40 -04:00
init.h Pass chain and client variables where needed 2018-11-06 11:44:40 -04:00
key.cpp Pass export privkey DER compression flag correctly 2018-09-13 09:58:26 +02:00
key.h convert C-style (void) parameter lists to C++ style () 2018-09-13 10:36:41 -07:00
key_io.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
key_io.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
keystore.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
keystore.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
limitedmap.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
logging.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
logging.h logging: Replace LogPrint macros with regular functions 2018-09-12 11:28:01 -04:00
Makefile.am Merge #13815: util: Add [[nodiscard]] to all {Decode,Parse}[...](...) functions returning bool 2018-11-15 14:39:37 -05:00
Makefile.bench.include build: Remove libssl from LDADD unless gui 2018-09-13 15:53:51 -04:00
Makefile.leveldb.include
Makefile.qt.include Merge #12783: macOS: disable AppNap during sync 2018-11-10 10:37:59 +01:00
Makefile.qttest.include build: Add --disable-bip70 configure option 2018-10-09 03:36:14 -06:00
Makefile.test.include Merge #14092: tests: Dry run bench_bitcoin as part "make check" to allow for quick identification of assertion/sanitizer failures in benchmarking code 2018-11-05 09:31:01 -05:00
memusage.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
merkleblock.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
merkleblock.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
miner.cpp miner: Default to DEFAULT_BLOCK_MIN_TX_FEE if unable to parse -blockmintxfee 2018-11-05 16:52:59 +01:00
miner.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
net.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
net.h Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
net_processing.cpp Merge #14436: doc: add comment explaining recentRejects-DoS behavior 2018-11-07 14:59:35 -05:00
net_processing.h Merge #14331: doxygen: Fix member comments 2018-09-30 22:15:37 -03:00
netaddress.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
netaddress.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
netbase.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
netbase.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
netmessagemaker.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
noui.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
noui.h noui: Move handlers to header file 2018-09-06 15:00:01 -04:00
outputtype.cpp Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
outputtype.h Add NODISCARD to all {Decode,Parse}[...](...) functions returning bool. Sort includes. 2018-11-05 17:03:11 +01:00
pow.cpp Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
pow.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
prevector.h warnings: Compiler warning on memset usage for non-trivial type 2018-11-04 20:50:40 -07:00
protocol.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
protocol.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
pubkey.cpp Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
pubkey.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
random.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
random.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
rest.cpp Add NODISCARD to all {Decode,Parse}[...](...) functions returning bool. Sort includes. 2018-11-05 17:03:11 +01:00
reverse_iterator.h scripted-diff: Remove trailing whitespaces 2018-07-24 20:46:23 +01:00
reverselock.h
scheduler.cpp convert C-style (void) parameter lists to C++ style () 2018-09-13 10:36:41 -07:00
scheduler.h convert C-style (void) parameter lists to C++ style () 2018-09-13 10:36:41 -07:00
serialize.h Drop minor GetSerializeSize template 2018-09-11 00:58:13 -04:00
shutdown.cpp Break circular dependency: init -> * -> init by extracting shutdown.h 2018-06-25 00:08:49 -04:00
shutdown.h Break circular dependency: init -> * -> init by extracting shutdown.h 2018-06-25 00:08:49 -04:00
span.h Add more methods to Span class 2018-07-27 11:52:18 -07:00
streams.h Fix typos reported by codespell 2018-09-04 13:11:26 +02:00
sync.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
sync.h scripted-diff: Small locking rename 2018-08-31 10:00:38 -04:00
threadinterrupt.cpp Merge #11640: Make LOCK, LOCK2, TRY_LOCK work with CWaitableCriticalSection 2018-08-31 16:00:38 +02:00
threadinterrupt.h scripted-diff: Small locking rename 2018-08-31 10:00:38 -04:00
threadsafety.h Pass chain locked variables where needed 2018-11-06 11:44:40 -04:00
timedata.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
timedata.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
tinyformat.h Fix typos 2018-03-21 08:34:44 +02:00
torcontrol.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
torcontrol.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
txdb.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
txdb.h Merge #13780: 0.17: Pre-branch maintenance 2018-08-08 13:55:27 +02:00
txmempool.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
txmempool.h Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
ui_interface.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
ui_interface.h Make macro compatible with MSVC 2018-08-14 09:19:47 +00:00
uint256.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
uint256.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
undo.h Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
validation.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
validation.h Merge #13783: validation: Pass tx pool reference into CheckSequenceLocks 2018-10-27 10:39:44 -04:00
validationinterface.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
validationinterface.h Add compile time checking for all cs_main runtime locking assertions 2018-08-26 00:25:28 +02:00
version.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
versionbits.cpp MOVEONLY: Move versionbits info out of versionbits.o 2018-09-23 22:55:11 +02:00
versionbits.h MOVEONLY: Move versionbits info out of versionbits.o 2018-09-23 22:55:11 +02:00
versionbitsinfo.cpp MOVEONLY: Move versionbits info out of versionbits.o 2018-09-23 22:55:11 +02:00
versionbitsinfo.h MOVEONLY: Move versionbits info out of versionbits.o 2018-09-23 22:55:11 +02:00
walletinitinterface.h Remove direct node->wallet calls in init.cpp 2018-11-06 11:44:40 -04:00
warnings.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
warnings.h Merge #13780: 0.17: Pre-branch maintenance 2018-08-08 13:55:27 +02:00