diff --git a/src/wallet/db.cpp b/src/wallet/db.cpp --- a/src/wallet/db.cpp +++ b/src/wallet/db.cpp @@ -141,6 +141,7 @@ DB_INIT_TXN | DB_THREAD | DB_RECOVER | nEnvFlags, S_IRUSR | S_IWUSR); if (ret != 0) { + dbenv->close(0); return error( "CDBEnv::Open: Error %d opening database environment: %s\n", ret, DbEnv::strerror(ret)); @@ -239,6 +240,7 @@ 0); if (ret > 0) { LogPrintf("Cannot create database file %s\n", filename); + pdbCopy->close(0); return false; } @@ -610,6 +612,8 @@ if (pdbCopy->close(0)) { fSuccess = false; } + } else { + pdbCopy->close(0); } } if (fSuccess) {