neocgit

a more 'modern' version of cgit
Log | Files | Refs | Submodules | README | LICENSE | git clone https://git.ne02ptzero.me/git/neocgit

commit aa12084f9835783abbd1f1e4609f8de05e73cec4
parent c543d7dbf6bf7c8be5af829bf1d3eab494856ee0
Author: Christian Hesse <mail@eworm.de>
Date:   Fri, 14 Aug 2015 00:02:50 +0200

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 <mail@eworm.de>
Reviewed-by: John Keeping <john@keeping.me.uk>

Diffstat:
Mui-patch.c | 4++++
1 file changed, 4 insertions(+), 0 deletions(-)

diff --git 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; }