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
