summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2012-12-27 02:38:11 -0600
committerAllan McRae <allan@archlinux.org>2013-01-03 12:03:10 +1000
commit038b1815d0ab1a8c0aab4d6cfc18541df5c6cd33 (patch)
treec5a14f6793f4ca8c262c7f83eebfa28ff1040e33
parent60d258819294e7b84c7ec501d9bfe6fe6965d41c (diff)
downloadpacman-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.c4
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);
}
}