Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Better fix for failed registration and rollback
Baptiste Daroussin committed 14 years ago
commit ef4728efc467b0b4f9d5a502495abfb91f58fc02
parent d4ce33d
1 file changed +5 -6
modified libpkg/pkg_add.c
@@ -148,7 +148,7 @@ pkg_add(struct pkgdb *db, const char *path, struct pkg **pkg_p)
	 * problems that could be caught here. */
	retcode = pkgdb_register_pkg(db, pkg);
	if (retcode != EPKG_OK || pkgdb_has_flag(db, PKGDB_FLAG_IN_FLIGHT) == 0)
-
		goto cleanup;
+
		goto cleanup_reg;

	/*
	 * Execute pre-install scripts
@@ -161,7 +161,7 @@ pkg_add(struct pkgdb *db, const char *path, struct pkg **pkg_p)
	if (extract == true && (retcode = do_extract(a, ae)) != EPKG_OK) {
		/* If the add failed, clean up */
		(void) pkg_delete_files(pkg, 1);
-
		goto cleanup;
+
		goto cleanup_reg;
	}

	/*
@@ -169,11 +169,10 @@ pkg_add(struct pkgdb *db, const char *path, struct pkg **pkg_p)
	 */
	pkg_script_post_install(pkg);

-
	cleanup:
-

-
	if (pkgdb_has_flag(db, PKGDB_FLAG_IN_FLIGHT) == 0)
-
		pkgdb_register_finale(db, retcode);
+
	cleanup_reg:
+
	pkgdb_register_finale(db, retcode);

+
	cleanup:
	if (a != NULL)
		archive_read_finish(a);