From b45c597caadabbf10a1e34f2c9ee1d0916164eee Mon Sep 17 00:00:00 2001 From: practicalswift Date: Wed, 9 Aug 2017 16:30:57 +0200 Subject: [PATCH] Use unique_ptr for pdbCopy (Db) and fix potential memory leak --- src/wallet/db.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/wallet/db.cpp b/src/wallet/db.cpp index 520c16d9c..cae8cd7da 100644 --- a/src/wallet/db.cpp +++ b/src/wallet/db.cpp @@ -522,7 +522,7 @@ bool CDB::Rewrite(CWalletDBWrapper& dbw, const char* pszSkip) std::string strFileRes = strFile + ".rewrite"; { // surround usage of db with extra {} CDB db(dbw, "r"); - Db* pdbCopy = new Db(env->dbenv.get(), 0); + std::unique_ptr pdbCopy = std::unique_ptr(new Db(env->dbenv.get(), 0)); int ret = pdbCopy->open(nullptr, // Txn pointer strFileRes.c_str(), // Filename @@ -571,7 +571,6 @@ bool CDB::Rewrite(CWalletDBWrapper& dbw, const char* pszSkip) } else { pdbCopy->close(0); } - delete pdbCopy; } if (fSuccess) { Db dbA(env->dbenv.get(), 0);