mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
* modules/generators/mod_cgi.c (cgi_handler): Ensure all stderr from
the script is logged if it generated a non-local redirect. PR: 20111 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@106195 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
4
CHANGES
4
CHANGES
@@ -2,6 +2,10 @@ Changes with Apache 2.1.2-dev
|
|||||||
|
|
||||||
[Remove entries to the current 2.0 section below, when backported]
|
[Remove entries to the current 2.0 section below, when backported]
|
||||||
|
|
||||||
|
*) mod_cgi: Ensure that all stderr is logged for a script which returns
|
||||||
|
a Location header to generate a non-local redirect. PR 20111.
|
||||||
|
[Joe Orton]
|
||||||
|
|
||||||
*) Added the Event MPM to more efficiently handle clients during a
|
*) Added the Event MPM to more efficiently handle clients during a
|
||||||
Keep Alive request.
|
Keep Alive request.
|
||||||
[Paul Querna, Greg Ames]
|
[Paul Querna, Greg Ames]
|
||||||
|
@@ -925,11 +925,17 @@ static int cgi_handler(request_rec *r)
|
|||||||
|
|
||||||
location = apr_table_get(r->headers_out, "Location");
|
location = apr_table_get(r->headers_out, "Location");
|
||||||
|
|
||||||
if (location && location[0] == '/' && r->status == 200) {
|
if (location && r->status == 200) {
|
||||||
|
/* For a redirect whether internal or not, discard any
|
||||||
|
* remaining stdout from the script, and log any remaining
|
||||||
|
* stderr output, as normal. */
|
||||||
discard_script_output(bb);
|
discard_script_output(bb);
|
||||||
apr_brigade_destroy(bb);
|
apr_brigade_destroy(bb);
|
||||||
apr_file_pipe_timeout_set(script_err, r->server->timeout);
|
apr_file_pipe_timeout_set(script_err, r->server->timeout);
|
||||||
log_script_err(r, script_err);
|
log_script_err(r, script_err);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (location && location[0] == '/' && r->status == 200) {
|
||||||
/* This redirect needs to be a GET no matter what the original
|
/* This redirect needs to be a GET no matter what the original
|
||||||
* method was.
|
* method was.
|
||||||
*/
|
*/
|
||||||
@@ -949,8 +955,6 @@ static int cgi_handler(request_rec *r)
|
|||||||
/* XX Note that if a script wants to produce its own Redirect
|
/* XX Note that if a script wants to produce its own Redirect
|
||||||
* body, it now has to explicitly *say* "Status: 302"
|
* body, it now has to explicitly *say* "Status: 302"
|
||||||
*/
|
*/
|
||||||
discard_script_output(bb);
|
|
||||||
apr_brigade_destroy(bb);
|
|
||||||
return HTTP_MOVED_TEMPORARILY;
|
return HTTP_MOVED_TEMPORARILY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user