summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libalpm/delta.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libalpm/delta.c b/lib/libalpm/delta.c
index 9be031a8..3d33c595 100644
--- a/lib/libalpm/delta.c
+++ b/lib/libalpm/delta.c
@@ -168,15 +168,15 @@ static alpm_list_t *shortest_delta_path(alpm_list_t *deltas,
/* If this vertex has already been visited in the path, go to the
* next vertex. */
- if(alpm_list_find_ptr(path, v))
+ if(alpm_list_find_ptr(path, v)) {
continue;
+ }
/* Once we find a vertex that starts at the 'from' version,
* recursively find the shortest path using the 'to' version of this
* current vertex as the 'from' version in the function call. */
if(strcmp(v->from, from) == 0) {
alpm_list_t *newpath = alpm_list_copy(path);
- alpm_list_free(path);
newpath = alpm_list_add(newpath, v);
newpath = shortest_delta_path(deltas, v->to, to, newpath);
@@ -195,6 +195,8 @@ static alpm_list_t *shortest_delta_path(alpm_list_t *deltas,
}
}
+ alpm_list_free(path);
+
return(shortest);
}