On Fri, Aug 14, 2015 at 12:02:50AM +0200, Christian Hesse wrote:
> From: Christian Hesse <[email protected]>
> 
> 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]>

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
_______________________________________________
CGit mailing list
[email protected]
http://lists.zx2c4.com/mailman/listinfo/cgit

Reply via email to