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
