You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@apache.org on 2006/04/10 20:01:31 UTC
svn commit: r393005 - in /httpd/httpd/branches/2.0.x: CHANGES STATUS
server/core.c
Author: trawick
Date: Mon Apr 10 11:01:29 2006
New Revision: 393005
URL: http://svn.apache.org/viewcvs?rev=393005&view=rev
Log:
Default handler: Don't return output filter apr_status_t values.
PR: 31759
Reviewed by: rpleum, gregames
Modified:
httpd/httpd/branches/2.0.x/CHANGES
httpd/httpd/branches/2.0.x/STATUS
httpd/httpd/branches/2.0.x/server/core.c
Modified: httpd/httpd/branches/2.0.x/CHANGES
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/2.0.x/CHANGES?rev=393005&r1=393004&r2=393005&view=diff
==============================================================================
--- httpd/httpd/branches/2.0.x/CHANGES [utf-8] (original)
+++ httpd/httpd/branches/2.0.x/CHANGES [utf-8] Mon Apr 10 11:01:29 2006
@@ -14,6 +14,9 @@
ap_escape_html so we escape quotes. Reported by JPCERT.
[Mark Cox]
+ *) Default handler: Don't return output filter apr_status_t values.
+ PR 31759. [Jeff Trawick, Ruediger Pluem, Joe Orton]
+
*) mod_speling: Stop crashing with certain non-file requests.
[Jeff Trawick]
Modified: httpd/httpd/branches/2.0.x/STATUS
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/2.0.x/STATUS?rev=393005&r1=393004&r2=393005&view=diff
==============================================================================
--- httpd/httpd/branches/2.0.x/STATUS (original)
+++ httpd/httpd/branches/2.0.x/STATUS Mon Apr 10 11:01:29 2006
@@ -116,14 +116,6 @@
http://svn.apache.org/viewcvs?rev=390573&view=rev
+1: wrowe, trawick, rpluem
- *) Default handler: Don't return output filter apr_status_t values. PR 31759.
- Trunk version of patch:
- http://svn.apache.org/viewcvs?rev=390922&view=rev
- http://svn.apache.org/viewcvs?rev=391025&view=rev
- 2.0.x version of patch:
- Trunk version works
- +1: rpluem, trawick, gregames
-
*) Make sure we write a reasonable status line (e.g., if byterange
filter modifies status and custom status line is left
unmodified).
Modified: httpd/httpd/branches/2.0.x/server/core.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/2.0.x/server/core.c?rev=393005&r1=393004&r2=393005&view=diff
==============================================================================
--- httpd/httpd/branches/2.0.x/server/core.c (original)
+++ httpd/httpd/branches/2.0.x/server/core.c Mon Apr 10 11:01:29 2006
@@ -3645,7 +3645,19 @@
e = apr_bucket_eos_create(c->bucket_alloc);
APR_BRIGADE_INSERT_TAIL(bb, e);
- return ap_pass_brigade(r->output_filters, bb);
+ status = ap_pass_brigade(r->output_filters, bb);
+ if (status == APR_SUCCESS
+ || r->status != HTTP_OK
+ || c->aborted) {
+ return OK; /* r->status will be respected */
+ }
+ else {
+ /* no way to know what type of error occurred */
+ ap_log_rerror(APLOG_MARK, APLOG_DEBUG, status, r,
+ "default_handler: ap_pass_brigade returned %i",
+ status);
+ return HTTP_INTERNAL_SERVER_ERROR;
+ }
}
else { /* unusual method (not GET or POST) */
if (r->method_number == M_INVALID) {