From 71fefb695182c785ae23cc3843a78d7cd9e25781 Mon Sep 17 00:00:00 2001 From: Ruediger Pluem Date: Tue, 25 Oct 2011 15:56:08 +0000 Subject: [PATCH] * Correctly return a 400 (Bad request) in case of a HTTP/0.9 request like GET @example.org/foo git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1188745 13f79535-47bb-0310-9956-ffa450edef68 --- server/protocol.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/server/protocol.c b/server/protocol.c index 28aeafcdde..2d2bc05ca0 100644 --- a/server/protocol.c +++ b/server/protocol.c @@ -672,6 +672,7 @@ static int read_request_line(request_rec *r, apr_bucket_brigade *bb) r->hostname = NULL; r->status = HTTP_BAD_REQUEST; r->uri = apr_pstrdup(r->pool, uri); + return 0; } if (ll[0]) { @@ -986,15 +987,15 @@ request_rec *ap_read_request(conn_rec *conn) if (!read_request_line(r, tmp_bb)) { if (r->status == HTTP_REQUEST_URI_TOO_LARGE || r->status == HTTP_BAD_REQUEST) { - if (r->status == HTTP_BAD_REQUEST) { - ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, - "request failed: invalid characters in URI"); - } - else { + if (r->status == HTTP_REQUEST_URI_TOO_LARGE) { ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, "request failed: URI too long (longer than %d)", r->server->limit_req_line); } + else if (r->method == NULL) { + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, + "request failed: invalid characters in URI"); + } ap_send_error_response(r, 0); ap_update_child_status(conn->sbh, SERVER_BUSY_LOG, r); ap_run_log_transaction(r); -- 2.40.0