Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Be more strict about acceptable lock counts when opening and closing pkgdb.
David Naylor committed 13 years ago
commit cfd8042b679c542fb7b24f42842cb6b29a80c891
parent 9e0f548
1 file changed +2 -9
modified libpkg/pkgdb.c
@@ -584,13 +584,9 @@ pkgdb_open(struct pkgdb **db_p, pkgdb_t type)
	struct pkg_config_kv *repokv = NULL;

	if (*db_p != NULL) {
+
		assert((*db_p)->lock_count == 0);
		reopen = true;
		db = *db_p;
-
		if (db->lock_count) {
-
			db->lock_count = 1;
-
			if (pkgdb_unlock(db) != EPKG_OK)
-
				return (EPKG_FATAL);
-
		}
		if (db->type == type)
			return (EPKG_OK);
	}
@@ -736,10 +732,7 @@ pkgdb_close(struct pkgdb *db)
		return;

	if (db->sqlite != NULL) {
-
		if (db->lock_count) {
-
			db->lock_count = 1;
-
			pkgdb_unlock(db);  /* Unlock failure is not terminal */
-
		}
+
		assert(db->lock_count == 0);
		if (db->type == PKGDB_REMOTE) {
			pkgdb_detach_remotes(db->sqlite);
		}