Check m_internals in UnregisterValidationInterface
When a wallet is created it is registered in the validation interface (in CWallet::CreateWalletFromFile) but it is not immediately added to the wallets list. If a shutdown is requested before AddWallet (case more evident when -rescan is set) then m_internals can be released (in Shutdown -> UnregisterBackgroundSignalScheduler) before the wallet and then ReleaseWallet would call UnregisterValidationInterface with m_internals already released.
This commit is contained in:
1 parent
fd6d499bda
commit
0dd6a8c124
1 file changed
+3
-1
@@ -107,7 +107,9 @@ void RegisterValidationInterface(CValidationInterface* pwalletIn) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void UnregisterValidationInterface(CValidationInterface* pwalletIn) {
|
void UnregisterValidationInterface(CValidationInterface* pwalletIn) {
|
||||||
g_signals.m_internals->m_connMainSignals.erase(pwalletIn);
|
if (g_signals.m_internals) {
|
||||||
|
g_signals.m_internals->m_connMainSignals.erase(pwalletIn);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UnregisterAllValidationInterfaces() {
|
void UnregisterAllValidationInterfaces() {
|
||||||
|
|||||||
Reference in new issue
Block a user