Diff options
Diffstat (limited to 'source')
-rw-r--r--source/ui-log.c20
1 file changed, 6 insertions, 14 deletions
diff --git a/source/ui-log.c b/source/ui-log.c
index 2c1d802..3cbbe33 100644
--- a/source/ui-log.c
+++ b/source/ui-log.c
@@ -483,10 +483,7 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
// option.
if (tip && !cgit_valid_rev(tip)) {
cgit_print_error_page(400, "Bad Request", "Invalid revision");
- if (must_free_tip)
- free((char *)tip);
- strvec_clear(&rev_argv);
- return;
+ goto out;
}
strvec_push(&rev_argv, tip);
@@ -494,10 +491,7 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
// which can end the request inside git.
if (path && path[0] == ':') {
cgit_print_error_page(400, "Bad Request", "Invalid path");
- if (must_free_tip)
- free((char *)tip);
- strvec_clear(&rev_argv);
- return;
+ goto out;
}
if (grep && pattern && *pattern) {
@@ -518,10 +512,7 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
while ((arg = next_token(&pattern))) {
if (!valid_range_token(arg)) {
cgit_print_error_page(400, "Bad Request", "Invalid revision");
- if (must_free_tip)
- free((char *)tip);
- strvec_clear(&rev_argv);
- return;
+ goto out;
}
strvec_push(&rev_argv, arg);
}
@@ -580,8 +571,7 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
// not be read from.
if (prepare_revision_walk(&rev)) {
cgit_print_error_page(500, "Internal Server Error", "Unable to read the history");
- strvec_clear(&rev_argv);
- return;
+ goto out;
}
if (pager) {
@@ -650,6 +640,8 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
html("</tbody>\n");
}
+out:
if (must_free_tip)
free((char *)tip);
+ strvec_clear(&rev_argv);
}