diff options
author | Chantry Xavier <shiningxc@gmail.com> | 2007-11-21 19:51:46 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2007-11-25 14:01:19 -0600 |
commit | 8d9ee923ec3860e3f1133a66a0dc94ce85644bb4 (patch) | |
tree | f9534e1924c24f6c978c80709d8316d20c9c4280 /lib/libalpm/remove.c | |
parent | 8bee526d28eaad45e0e1e210cd523e157c71cfae (diff) | |
download | pacman-8d9ee923ec3860e3f1133a66a0dc94ce85644bb4.tar.xz |
Fix several memleaks, mostly related to errors handling.
* The frontend calls alpm_trans_prepare(&data), and in case of errors,
receive the missing dependencies / conflicts / etc in the data pointer.
It apparently needs to free this structure totally with :
alpm_list_free_inner(data, free)
alpm_list_free(data)
So I added alpm_list_free_inner(data, free) in
pacman/{sync.c,remove.c,add,c}
* in _alpm_sync_prepare, the deps and asked lists were not freed in case
of errors (unresolvable conflicts).
Besides the code for handling this case was duplicated.
* in _alpm_remove_commit, free was used instead of alpm_list_free for
newfiles.
* newline fix in pacman/sync.c
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/remove.c')
-rw-r--r-- | lib/libalpm/remove.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c index 592cf39e..e1f19ec8 100644 --- a/lib/libalpm/remove.c +++ b/lib/libalpm/remove.c @@ -315,7 +315,7 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db) (pkg_count - alpm_list_count(targ) + 1)); position++; } - free(newfiles); + alpm_list_free(newfiles); } /* set progress to 100% after we finish unlinking files */ |