diff options
author | Dan McGee <dan@archlinux.org> | 2012-12-27 09:38:11 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2013-01-03 03:03:10 +0100 |
commit | 038b1815d0ab1a8c0aab4d6cfc18541df5c6cd33 (patch) | |
tree | c5a14f6793f4ca8c262c7f83eebfa28ff1040e33 | |
parent | 60d258819294e7b84c7ec501d9bfe6fe6965d41c (diff) | |
download | pacman-038b1815d0ab1a8c0aab4d6cfc18541df5c6cd33.tar.gz pacman-038b1815d0ab1a8c0aab4d6cfc18541df5c6cd33.tar.xz |
util/pactree: correctly free the deps list in walk_deps()
If we are reversed, then we were correctly freeing both the list and the
contained data. However, we were leaking a list in the case of a
non-reversed traversal.
Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | src/util/pactree.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/util/pactree.c b/src/util/pactree.c index 0c1710f6..9125f581 100644 --- a/src/util/pactree.c +++ b/src/util/pactree.c @@ -472,7 +472,7 @@ static void walk_deps(alpm_list_t *dblist, alpm_pkg_t *pkg, tdepth *depth, int r depth->next = &d; /* last dep, cut off the limb here */ if(last){ - if(depth->prev){ + if(depth->prev) { depth->prev->next = &d; d.prev = depth->prev; depth = &d; @@ -488,6 +488,8 @@ static void walk_deps(alpm_list_t *dblist, alpm_pkg_t *pkg, tdepth *depth, int r if(rev) { FREELIST(deps); + } else { + alpm_list_free(deps); } } |