From 446e2610b0cd6535e623952bf22ea09ce0ed8aaf Mon Sep 17 00:00:00 2001 From: practicalswift Date: Mon, 7 Aug 2017 14:28:40 +0200 Subject: [PATCH] [qt] Fix potential memory leak in newPossibleKey(ChangeCWallet *wallet) --- src/qt/walletmodeltransaction.cpp | 6 ++---- src/qt/walletmodeltransaction.h | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/qt/walletmodeltransaction.cpp b/src/qt/walletmodeltransaction.cpp index 8bc9ef725..c74db93a0 100644 --- a/src/qt/walletmodeltransaction.cpp +++ b/src/qt/walletmodeltransaction.cpp @@ -10,7 +10,6 @@ WalletModelTransaction::WalletModelTransaction(const QList &_recipients) : recipients(_recipients), walletTransaction(0), - keyChange(0), fee(0) { walletTransaction = new CWalletTx(); @@ -18,7 +17,6 @@ WalletModelTransaction::WalletModelTransaction(const QList & WalletModelTransaction::~WalletModelTransaction() { - delete keyChange; delete walletTransaction; } @@ -91,10 +89,10 @@ CAmount WalletModelTransaction::getTotalTransactionAmount() void WalletModelTransaction::newPossibleKeyChange(CWallet *wallet) { - keyChange = new CReserveKey(wallet); + keyChange.reset(new CReserveKey(wallet)); } CReserveKey *WalletModelTransaction::getPossibleKeyChange() { - return keyChange; + return keyChange.get(); } diff --git a/src/qt/walletmodeltransaction.h b/src/qt/walletmodeltransaction.h index 64922efad..5ef533421 100644 --- a/src/qt/walletmodeltransaction.h +++ b/src/qt/walletmodeltransaction.h @@ -40,7 +40,7 @@ public: private: QList recipients; CWalletTx *walletTransaction; - CReserveKey *keyChange; + std::unique_ptr keyChange; CAmount fee; };