Free *data list when user removes unresolvable packages

Resolvedeps reports error when it cannot resolve some dependencies, puts
them into the *data list, and set pm_errno. If user removes the
unresolvable packages from the target list, we have no error anymore,
so from now on we free *data list (we eliminate a memleak) and unset
pm_errno.

(Additionally I removed two needless lines from the code, unresolvable list
is always freed in cleanup.)

Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu>
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Nagy Gabor 2009-03-07 16:25:29 +01:00 committed by Dan McGee
parent 56fd24ecf8
commit 634304feae

View file

@ -451,14 +451,16 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
NULL, NULL, &remove_unresolvable);
if (remove_unresolvable) {
/* User wants to remove the unresolvable packages from the
transaction, so simply drop the unresolvable list. The
packages will be removed from the actual transaction when
the transaction packages are replaced with a
transaction. The packages will be removed from the actual
transaction when the transaction packages are replaced with a
dependency-reordered list below */
alpm_list_free(unresolvable);
unresolvable = NULL;
pm_errno = 0; /* pm_errno was set by resolvedeps */
if(data) {
alpm_list_free_inner(*data, (alpm_list_fn_free)_alpm_depmiss_free);
alpm_list_free(*data);
*data = NULL;
}
else {
} else {
/* pm_errno is set by resolvedeps */
ret = -1;
goto cleanup;