[pacman-dev] [PATCHv2] _alpm_sync_prepare: fix unresolvable packages leak

Andrew Gregory andrew.gregory.8 at gmail.com
Thu Feb 6 20:49:07 EST 2014

If the user opted not to remove the unresolvable packages from the
transaction, the list was neither free'd nor saved to the transaction to
be free'd in trans_release.

Signed-off-by: Andrew Gregory <andrew.gregory.8 at gmail.com>

This supersedes patch 1/8 (avoid double freeing unresovable packages) as well,
which was only necessary because the previous version made it possible for
packages to be in both trans->add and trans-unresolvable.

 lib/libalpm/sync.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index fb13324..c6c50a4 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -460,6 +460,7 @@ int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
 				/* pm_errno was set by resolvedeps, callback may have overwrote it */
 				handle->pm_errno = ALPM_ERR_UNSATISFIED_DEPS;
+				alpm_list_free(unresolvable);
 				ret = -1;
 				goto cleanup;

More information about the pacman-dev mailing list