aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-05-21 10:49:12 +0000
committerWerner Koch <[email protected]>2016-05-21 10:51:18 +0000
commit006a6126131ffd59d9a47889ac031f932ecc5d0b (patch)
tree3a22e5977e8fddac3d6c7ed1e2c4a17034965d44
parentgpg: Remove debug output accidently introduced with 027c4e5. (diff)
downloadgnupg-006a6126131ffd59d9a47889ac031f932ecc5d0b.tar.gz
gnupg-006a6126131ffd59d9a47889ac031f932ecc5d0b.zip
gpg: Explicitly close a combined Tofu DB.
* g10/tofu.c (tofu_closedbs): Close combined DB.
-rw-r--r--g10/tofu.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/g10/tofu.c b/g10/tofu.c
index 314c76bbd..8c639db1c 100644
--- a/g10/tofu.c
+++ b/g10/tofu.c
@@ -84,8 +84,8 @@ enum db_type
theis case, NAME is either the normalized email address or the
fingerprint.
- To initialize this data structure, call opendbs(). When you are
- done, clean it up using closedbs(). To get a handle to a database,
+ To initialize this data structure, call opendbs(). Cleanup is done
+ when the CTRL object is released. To get a handle to a database,
use the getdb() function. This will either return an existing
handle or open a new DB connection, as appropriate. */
struct db
@@ -1063,7 +1063,12 @@ tofu_closedbs (ctrl_t ctrl)
if (!dbs)
return; /* Not initialized. */
- if (dbs->db)
+ if (dbs->db && dbs->db->type == DB_COMBINED)
+ {
+ log_assert (!dbs->db->next);
+ closedb (dbs->db);
+ }
+ else if (dbs->db)
{
struct db *old_head = db_cache;
struct db *db;