Browse Source

Use unique_ptr for pdbCopy (Db) and fix potential memory leak

0.16
practicalswift 7 years ago
parent
commit
b45c597caa
  1. 3
      src/wallet/db.cpp

3
src/wallet/db.cpp

@ -522,7 +522,7 @@ bool CDB::Rewrite(CWalletDBWrapper& dbw, const char* pszSkip) @@ -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<Db> pdbCopy = std::unique_ptr<Db>(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) @@ -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);

Loading…
Cancel
Save