From: Yann Ylavic <ylavic@apache.org>
Date: Thu, 15 Mar 2018 23:19:12 +0000 (+0000)
Subject: Merge r1826556, r1826847 from trunk:
X-Git-Tag: 2.4.33~17
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c2041de696876b4a3e3aa6375478510ff8c02fdf;p=apache

Merge r1826556, r1826847 from trunk:

Fix timeout logging in ap_process_request().

We can't use 'r' after ap_process_request_after_handler(), the core output
filter might have cleaned up its deferred bucket brigade on error, including
the EOR bucket.

Reported by: steffenal
Closes SpiderLabs/ModSecurity#1542


Follow up to r1826556: CHANGES entry.


Submitted by: ylavic
Reviewed by: ylavic, covener, rjung


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

diff --git a/CHANGES b/CHANGES
index 07dea06a1f..54301530f7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.4.33
 
+  *) core: Fix request timeout logging and possible crash for error_log hooks.
+     [Yann Ylavic]
+
   *) mod_slomem_shm: Fix failure to create balancers's slotmems in Windows MPM,
      where children processes need to attach them instead since they are owned
      by the parent process already.  [Yann Ylavic]
diff --git a/modules/http/http_request.c b/modules/http/http_request.c
index bc7ae22dc4..8d1607cfc2 100644
--- a/modules/http/http_request.c
+++ b/modules/http/http_request.c
@@ -480,13 +480,9 @@ AP_DECLARE(void) ap_process_request(request_rec *r)
              * Notice a timeout as an error message. This might be
              * valuable for detecting clients with broken network
              * connections or possible DoS attacks.
-             *
-             * It is still safe to use r / r->pool here as the eor bucket
-             * could not have been destroyed in the event of a timeout.
              */
-            ap_log_rerror(APLOG_MARK, APLOG_INFO, rv, r, APLOGNO(01581)
-                          "Timeout while writing data for URI %s to the"
-                          " client", r->unparsed_uri);
+            ap_log_cerror(APLOG_MARK, APLOG_INFO, rv, c, APLOGNO(01581)
+                          "flushing data to the client");
         }
     }
     if (ap_extended_status) {