]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Catch the somewhat absurd combination of a 417 error where no Expect header
authorWilliam A. Rowe Jr <wrowe@apache.org>
Mon, 14 Sep 2009 16:14:52 +0000 (16:14 +0000)
committerWilliam A. Rowe Jr <wrowe@apache.org>
Mon, 14 Sep 2009 16:14:52 +0000 (16:14 +0000)
was present, on some platforms avoiding a segfault.

Backports: 814048, 814114
Reviewed by: wrowe, minfrin, covener

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@814723 13f79535-47bb-0310-9956-ffa450edef68

STATUS
modules/http/http_protocol.c

diff --git a/STATUS b/STATUS
index 7a7a46b8d7d3a15b5c08bb26e9d9a081529d3b30..1c54b8d7b810e18f1cade266226e00f92b26a077 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -135,13 +135,6 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
    2.2.x patch: http://people.apache.org/~poirier/patch-2.2.x-PR30586.txt
    +1: poirier, minfrin
 
- * http_protocol: Catch the somewhat absurd combination of a 417 error where 
-   no Expect header was present, on some platforms avoiding a segfault.
-   Trunk Patch: http://svn.apache.org/viewvc?view=rev&revision=814048
-   +1: wrowe
-   rpluem says: Need to add r814114 to make it compile.
-   +1: minfrin, covener (with r814114)
-
  * htcacheclean: 19 ways to fail, 1 error message. Fixed.
    Trunk Patch: http://svn.apache.org/viewvc?view=rev&revision=814091
    +1: minfrin, covener, poirier
index 046e98bc579dffb890a6fe8e6e4890b80ab1c827..fdd7d7578ac7c31e56ad4a7f896fe940601f4cad 100644 (file)
@@ -1005,16 +1005,19 @@ static const char *get_canned_error_string(int status,
                "request-header field overlap the current extent\n"
                "of the selected resource.</p>\n");
     case HTTP_EXPECTATION_FAILED:
-        return(apr_pstrcat(p,
-                           "<p>The expectation given in the Expect "
-                           "request-header"
-                           "\nfield could not be met by this server.</p>\n"
-                           "<p>The client sent<pre>\n    Expect: ",
-                           ap_escape_html(r->pool, apr_table_get(r->headers_in, "Expect")),
-                           "\n</pre>\n"
-                           "but we only allow the 100-continue "
-                           "expectation.</p>\n",
-                           NULL));
+        s1 = apr_table_get(r->headers_in, "Expect");
+        if (s1)
+            s1 = apr_pstrcat(p,
+                     "<p>The expectation given in the Expect request-header\n"
+                     "field could not be met by this server.\n"
+                     "The client sent<pre>\n    Expect: ",
+                     ap_escape_html(r->pool, s1), "\n</pre>\n",
+                     NULL);
+        else
+            s1 = "<p>No expectation was seen, the Expect request-header \n"
+                 "field was not presented by the client.\n";
+        return add_optional_notes(r, s1, "error-notes", "</p>"
+                   "<p>Only the 100-continue expectation is supported.</p>\n");
     case HTTP_UNPROCESSABLE_ENTITY:
         return("<p>The server understands the media type of the\n"
                "request entity, but was unable to process the\n"