[pacman-dev] [PATCH] util/pactree: correctly free the deps list in walk_deps()

Dan McGee dan at archlinux.org
Thu Dec 27 03:38:11 EST 2012


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 at archlinux.org>
---
 src/util/pactree.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/util/pactree.c b/src/util/pactree.c
index 0c1710f..9125f58 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);
 	}
 }
 
-- 
1.8.0.2



More information about the pacman-dev mailing list