]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Backports: r1188745
authorWilliam A. Rowe Jr <wrowe@apache.org>
Thu, 22 Dec 2016 19:23:10 +0000 (19:23 +0000)
committerWilliam A. Rowe Jr <wrowe@apache.org>
Thu, 22 Dec 2016 19:23:10 +0000 (19:23 +0000)
Submitted by: rpluem
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/branches/2.2.x-merge-http-strict@1775706 13f79535-47bb-0310-9956-ffa450edef68

server/protocol.c

index 121e084dbbed3091b6e66e2a6db5d8781399f9c2..0fc47728eb6fc09303b2e76620f3370f9b9aba36 100644 (file)
@@ -982,15 +982,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);