From 60b537e356dfcd0ed9a3516152c6a170912efcef Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Thu, 10 Jun 2010 17:50:11 +0000 Subject: db: do not free trigger list after package is unpacked The triggers are read during apk_db_unpack_pkg(). If we delete the triggers list after then unpack we delete the triggers which is not what we want. This fixes bug introduced in ce3cf8bff901e7fcacbca640ffedaeea2b3bdf7f --- src/database.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/database.c b/src/database.c index 7421e1b..11864cb 100644 --- a/src/database.c +++ b/src/database.c @@ -2100,6 +2100,12 @@ int apk_db_install_pkg(struct apk_database *db, /* Install the new stuff */ ipkg = apk_pkg_install(db, newpkg); + ipkg->flags |= APK_IPKGF_RUN_ALL_TRIGGERS; + if (ipkg->triggers->num != 0) { + list_del(&ipkg->trigger_pkgs_list); + apk_string_array_free(&ipkg->triggers); + } + if (newpkg->installed_size != 0) { r = apk_db_unpack_pkg(db, ipkg, (oldpkg != NULL), (oldpkg == newpkg), cb, cb_ctx, @@ -2110,12 +2116,6 @@ int apk_db_install_pkg(struct apk_database *db, } } - ipkg->flags |= APK_IPKGF_RUN_ALL_TRIGGERS; - if (ipkg->triggers->num != 0) { - list_del(&ipkg->trigger_pkgs_list); - apk_string_array_free(&ipkg->triggers); - } - if (oldpkg != NULL && oldpkg != newpkg && oldpkg->ipkg != NULL) { apk_db_purge_pkg(db, oldpkg->ipkg, NULL); apk_pkg_uninstall(db, oldpkg); -- cgit v1.2.3