From aa12084f9835783abbd1f1e4609f8de05e73cec4 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 14 Aug 2015 00:02:50 +0200 Subject: 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 Reviewed-by: John Keeping --- ui-patch.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui-patch.c b/ui-patch.c index 6ec89b4..57ca2f8 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; } -- cgit v1.2.3-59-g8ed1b