From 1cffa8b68d83a77d3e34ecf86b9fd98a2af4a635 Mon Sep 17 00:00:00 2001 From: xiphon Date: Tue, 28 May 2019 15:46:26 +0000 Subject: WalletManager: fix crash on null/dangling pointer dereference --- src/libwalletqt/WalletManager.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/libwalletqt/WalletManager.cpp') diff --git a/src/libwalletqt/WalletManager.cpp b/src/libwalletqt/WalletManager.cpp index 141ae97a..494c9575 100644 --- a/src/libwalletqt/WalletManager.cpp +++ b/src/libwalletqt/WalletManager.cpp @@ -376,8 +376,14 @@ double WalletManager::miningHashRate() const bool WalletManager::isMining() const { - if(!m_currentWallet->connected()) - return false; + { + QMutexLocker locker(&m_mutex); + if (m_currentWallet == nullptr || !m_currentWallet->connected()) + { + return false; + } + } + return m_pimpl->isMining(); } @@ -412,6 +418,7 @@ QString WalletManager::resolveOpenAlias(const QString &address) const } bool WalletManager::parse_uri(const QString &uri, QString &address, QString &payment_id, uint64_t &amount, QString &tx_description, QString &recipient_name, QVector &unknown_parameters, QString &error) const { + QMutexLocker locker(&m_mutex); if (m_currentWallet) return m_currentWallet->parse_uri(uri, address, payment_id, amount, tx_description, recipient_name, unknown_parameters, error); return false; -- cgit v1.2.3