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 ce3cf8bff9
cute-signatures
Natanael Copa 2010-06-10 17:50:11 +00:00
parent 6b52c5dc84
commit 60b537e356
1 changed files with 6 additions and 6 deletions

View File

@ -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);