On Nov 17, 2007 7:50 AM, Nagy Gabor <shiningxc@gmail.com> wrote:
Both memleak was an unfreed alpm_db_whatprovides list.
Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> --- src/pacman/deptest.c | 1 + src/pacman/sync.c | 1 + 2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/src/pacman/deptest.c b/src/pacman/deptest.c index 301558e..d17c821 100644 --- a/src/pacman/deptest.c +++ b/src/pacman/deptest.c @@ -70,6 +70,7 @@ int pacman_deptest(alpm_list_t *targets) break; } } + alpm_list_free(provides); }
if(!found) { diff --git a/src/pacman/sync.c b/src/pacman/sync.c index 5f1072f..6f3c5d5 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -532,6 +532,7 @@ int sync_trans(alpm_list_t *targets, int sync_only) if(prov) { pmpkg_t *pkg = alpm_list_getdata(prov); pname = alpm_pkg_get_name(pkg); + alpm_list_free(prov); break; } } -- 1.5.3.5
Obviously I'll apply this. However, from a design standpoint, I really wish we never had to call alpm_list_free() from the frontend on anything returned by the library. When we start having to do that, it leads to double frees and all sorts of other fun stuff. -Dan