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
parent
6b52c5dc84
commit
60b537e356
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue