Commit 8790bd2a authored by Joe Orton's avatar Joe Orton
Browse files

* 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
parent 75496df3
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2,6 +2,10 @@ Changes with Apache 2.1.2-dev
  [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 
     Keep Alive request.
     [Paul Querna, Greg Ames]
+7 −3
Original line number Diff line number Diff line
@@ -925,11 +925,17 @@ static int cgi_handler(request_rec *r)

        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);
            apr_brigade_destroy(bb);
            apr_file_pipe_timeout_set(script_err, r->server->timeout);
            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
             * 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
             * body, it now has to explicitly *say* "Status: 302"
             */
            discard_script_output(bb);
            apr_brigade_destroy(bb);
            return HTTP_MOVED_TEMPORARILY;
        }