]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-tree.c
cgit_print_tree(): Free curr_rev after usage
[ps-cgit] / ui-tree.c
index 561f9e7c7a0a80a6a222e0aa12fe2e6aed59ad3e..b692b563a850421dd30fc24dc6174f0ed81d3363 100644 (file)
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -271,7 +271,6 @@ void cgit_print_tree(const char *rev, char *path)
        if (!rev)
                rev = ctx.qry.head;
 
-       walk_tree_ctx.curr_rev = xstrdup(rev);
        if (get_sha1(rev, sha1)) {
                cgit_print_error(fmt("Invalid revision name: %s", rev));
                return;
@@ -282,12 +281,17 @@ void cgit_print_tree(const char *rev, char *path)
                return;
        }
 
+       walk_tree_ctx.curr_rev = xstrdup(rev);
+
        if (path == NULL) {
                ls_tree(commit->tree->object.sha1, NULL, &walk_tree_ctx);
-               return;
+               goto cleanup;
        }
 
        read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
        if (walk_tree_ctx.state == 1)
                ls_tail();
+
+cleanup:
+       free(walk_tree_ctx.curr_rev);
 }