Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=2311e16435da1c6619813c26069a4e40e15c46b5

commit 2311e16435da1c6619813c26069a4e40e15c46b5
Author: Michel Hermier <[email protected]>
Date:   Fri May 3 19:15:26 2013 +0200

libpacman: When a transpkg is 'compressed', let's not leak the given transpkg.

diff --git a/lib/libpacman/trans.c b/lib/libpacman/trans.c
index 7b691d4..d23474c 100644
--- a/lib/libpacman/trans.c
+++ b/lib/libpacman/trans.c
@@ -308,16 +308,12 @@ int _pacman_trans_add (pmtrans_t *trans, pmtranspkg_t 
*transpkg) {
_pacman_log (PM_LOG_WARNING, _("replacing older version %s-%s by %s in target 
list"),
transpkg_in->pkg_new->name, transpkg_in->pkg_new->version, 
transpkg->pkg_new->version);
f_list_find (trans->_packages, transpkg_in->pkg_new)->data = transpkg->pkg_new;
-                               FREEPKG(transpkg_in->pkg_new);
-                               transpkg_in->pkg_new = transpkg->pkg_new;
-                               /* FIXME: use
f_ptrswap (&transpkg_in->pkg_new, &transpkg->pkg_new);
-                               __pacman_trans_pkg_delete (transpkg);
-                               */
} else {
_pacman_log(PM_LOG_WARNING, _("newer version %s-%s is in the target list -- 
skipping"),
transpkg_in->pkg_new->name, transpkg_in->pkg_new->version, 
transpkg->pkg_new->version);
}
+                       __pacman_trans_pkg_delete (transpkg);
return 0;
}

@@ -325,6 +321,7 @@ int _pacman_trans_add (pmtrans_t *trans, pmtranspkg_t 
*transpkg) {
if (transpkg_in->type == PM_TRANS_TYPE_REMOVE &&
transpkg->type == PM_TRANS_TYPE_REMOVE) {
_pacman_log(PM_LOG_DEBUG, _("%s transpkg removal compressed"), transpkg_name);
+                       __pacman_trans_pkg_delete (transpkg);
return 0;
}
RET_ERR(PM_ERR_TRANS_DUP_TARGET, -1);
@@ -430,7 +427,7 @@ int _pacman_trans_add_pkg (pmtrans_t *trans, pmpkg_t *pkg, 
pmtranstype_t type, u

ret = _pacman_trans_add (trans, transpkg);
if (ret != 0) {
-               __pacman_trans_pkg_delete(transpkg);
+               __pacman_trans_pkg_delete (transpkg);
}
return ret;
}
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to