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:
parent
56fd24ecf8
commit
634304feae
1 changed files with 9 additions and 7 deletions
|
@ -451,14 +451,16 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
|
||||||
NULL, NULL, &remove_unresolvable);
|
NULL, NULL, &remove_unresolvable);
|
||||||
if (remove_unresolvable) {
|
if (remove_unresolvable) {
|
||||||
/* User wants to remove the unresolvable packages from the
|
/* User wants to remove the unresolvable packages from the
|
||||||
transaction, so simply drop the unresolvable list. The
|
transaction. The packages will be removed from the actual
|
||||||
packages will be removed from the actual transaction when
|
transaction when the transaction packages are replaced with a
|
||||||
the transaction packages are replaced with a
|
|
||||||
dependency-reordered list below */
|
dependency-reordered list below */
|
||||||
alpm_list_free(unresolvable);
|
pm_errno = 0; /* pm_errno was set by resolvedeps */
|
||||||
unresolvable = NULL;
|
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 */
|
/* pm_errno is set by resolvedeps */
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
Loading…
Add table
Reference in a new issue