the repository which powers this website
ui-patch: make sure to send http headers
Requesting a text/plain patch with bad commit id made cgit send text without proper http headers. This results in "500 Internal Server Error" with "Premature end of script headers" in server logs. So print http headers before error message and return. Signed-off-by: Christian Hesse <[email protected]> Reviewed-by: John Keeping <[email protected]>
Christian Hesse 2015-08-14
parent c543d7d · commit aa12084
-rw-r--r--ui-patch.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ui-patch.c b/ui-patch.c
index 6ec89b4c..57ca2f8c 100644
--- a/ui-patch.c
+++ b/ui-patch.c
@@ -25,21 +25,25 @@ void cgit_print_patch(const char *new_rev, const char *old_rev,
new_rev = ctx.qry.head;
if (get_sha1(new_rev, new_rev_sha1)) {
+ cgit_print_http_headers();
cgit_print_error("Bad object id: %s", new_rev);
return;
}
commit = lookup_commit_reference(new_rev_sha1);
if (!commit) {
+ cgit_print_http_headers();
cgit_print_error("Bad commit reference: %s", new_rev);
return;
}
if (old_rev) {
if (get_sha1(old_rev, old_rev_sha1)) {
+ cgit_print_http_headers();
cgit_print_error("Bad object id: %s", old_rev);
return;
}
if (!lookup_commit_reference(old_rev_sha1)) {
+ cgit_print_http_headers();
cgit_print_error("Bad commit reference: %s", old_rev);
return;
}