diff options
author | Ryan Bloom <rbb@apache.org> | 2001-01-22 22:57:57 +0100 |
---|---|---|
committer | Ryan Bloom <rbb@apache.org> | 2001-01-22 22:57:57 +0100 |
commit | 7bfd9bc68c1f0d7ac64dcbf0ec3bca6d579a32ad (patch) | |
tree | 9beb798d88437e9c40ac7f96a37f88f59510de1a /modules/http | |
parent | s/LAST/MIDDLE/ (diff) | |
download | apache2-7bfd9bc68c1f0d7ac64dcbf0ec3bca6d579a32ad.tar.xz apache2-7bfd9bc68c1f0d7ac64dcbf0ec3bca6d579a32ad.zip |
AP_REQUEST_DONE is bogus and a bad idea. This had the http_header filter
return -3 for every HEAD request, which in turn made us call ap_die. Of
course, if we didn't have a 200 status (say we had a 206), then we would
seg fault, because we would end up sending down a second EOS bucket, which
would in turn make us call the byterange filter again, but at this point,
we hadn't cleaned up the byterange ctx structure, because it was never
supposed to be called again.
This was biting us on apache.org, where we had a HEAD request for
bytes=100- for a file. This was a major seg fault. We are better off
just returning OK is much safer.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87788 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/http')
-rw-r--r-- | modules/http/http_protocol.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/http/http_protocol.c b/modules/http/http_protocol.c index 09c1c2f8e6..9fbce60513 100644 --- a/modules/http/http_protocol.c +++ b/modules/http/http_protocol.c @@ -2495,7 +2495,7 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_http_header_filter(ap_filter_t *f, apr_b if (ctx->headers_sent) { apr_brigade_destroy(b); - return AP_REQUEST_DONE; + return OK; } if (r->assbackwards) { @@ -2644,7 +2644,7 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_http_header_filter(ap_filter_t *f, apr_b if (r->header_only) { apr_brigade_destroy(b); - return AP_REQUEST_DONE; + return OK; } if (r->chunked) { |