[PATCH 1/1] make sure to send http headers
John Keeping
john at keeping.me.uk
Fri Aug 14 11:08:32 CEST 2015
On Fri, Aug 14, 2015 at 12:02:50AM +0200, Christian Hesse wrote:
> From: Christian Hesse <mail at eworm.de>
>
> 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 at eworm.de>
> ---
Reviewed-by: John Keeping <john at keeping.me.uk>
This should change to use cgit_print_error_page() when
jk/http-status-codes lands, but it looks like I missed ui-patch.c in
that series (probably because it doesn't use want_layout in cmd.c).
> 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;
> }
> --
> 2.5.0
More information about the CGit
mailing list