diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2019-06-05 22:31:39 -0500 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2019-06-05 22:31:39 -0500 |
| commit | f8a6dec0edaba8c50c04bc27607050a38cdd7967 (patch) | |
| tree | c3f0df97c6718f430f9601fe38154e2c8e9de9c5 /src | |
| parent | da39be9a8dbba668827a136c4f86ed09a19dd02a (diff) | |
| parent | 1cffa8b68d83a77d3e34ecf86b9fd98a2af4a635 (diff) | |
| download | monzero-gui-f8a6dec0edaba8c50c04bc27607050a38cdd7967.tar.gz monzero-gui-f8a6dec0edaba8c50c04bc27607050a38cdd7967.tar.xz monzero-gui-f8a6dec0edaba8c50c04bc27607050a38cdd7967.zip | |
Merge pull request #2179
1cffa8b WalletManager: fix crash on null/dangling pointer dereference (xiphon)
Diffstat (limited to 'src')
| -rw-r--r-- | src/libwalletqt/WalletManager.cpp | 11 | ||||
| -rw-r--r-- | src/libwalletqt/WalletManager.h | 2 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/libwalletqt/WalletManager.cpp b/src/libwalletqt/WalletManager.cpp index f51ab1fa..e643b6cd 100644 --- a/src/libwalletqt/WalletManager.cpp +++ b/src/libwalletqt/WalletManager.cpp @@ -378,8 +378,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(); } @@ -414,6 +420,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<QString> &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; diff --git a/src/libwalletqt/WalletManager.h b/src/libwalletqt/WalletManager.h index c1bd2b5f..ab4e4af7 100644 --- a/src/libwalletqt/WalletManager.h +++ b/src/libwalletqt/WalletManager.h @@ -209,7 +209,7 @@ private: explicit WalletManager(QObject *parent = 0); static WalletManager * m_instance; Monero::WalletManager * m_pimpl; - QMutex m_mutex; + mutable QMutex m_mutex; QPointer<Wallet> m_currentWallet; QWaitCondition m_cond_pass; |
