From 1b6cba1ad07dbf515ccde8a7a55126c3887dd75c Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 13 Sep 2020 00:54:36 +0100 Subject: [PATCH] metadata: set fDBenv to null if opening fails Fixes #580 Signed-off-by: falkTX --- common/JackMetadata.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/common/JackMetadata.cpp b/common/JackMetadata.cpp index 4b485d1b..783ee1a2 100644 --- a/common/JackMetadata.cpp +++ b/common/JackMetadata.cpp @@ -124,11 +124,14 @@ int JackMetadata::PropertyInit() if ((ret = fDBenv->open (fDBenv, dbpath, DB_CREATE | DB_INIT_LOCK | DB_INIT_MPOOL | DB_THREAD, 0)) != 0) { jack_error ("cannot open DB environment: %s", db_strerror (ret)); + fDBenv = NULL; return -1; } if ((ret = db_create (&fDB, fDBenv, 0)) != 0) { jack_error ("Cannot initialize metadata DB (%s)", db_strerror (ret)); + fDBenv->close (fDBenv, 0); + fDBenv = NULL; return -1; } @@ -137,6 +140,8 @@ int JackMetadata::PropertyInit() jack_error ("Cannot open metadata DB at %s: %s", dbpath, db_strerror (ret)); fDB->close (fDB, 0); fDB = NULL; + fDBenv->close (fDBenv, 0); + fDBenv = NULL; return -1; }