]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Applied backport.
authorGuenter Knauf <fuankg@apache.org>
Sat, 29 Oct 2011 19:54:52 +0000 (19:54 +0000)
committerGuenter Knauf <fuankg@apache.org>
Sat, 29 Oct 2011 19:54:52 +0000 (19:54 +0000)
Close PR 50861 where enabling and disabling of buffered
logs can cause a segfault.
Patch by: Torsten Förtsch <torsten.foertsch@gmx.net>
Reviewed by: sf, trawick, rjung

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

CHANGES
STATUS
modules/loggers/mod_log_config.c

diff --git a/CHANGES b/CHANGES
index e5a97b2cd551797f975e467a15f583d10ffe74e0..f947c91b0507bb6f386d2c9398e41313186b9ea5 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.2.22
 
+  *) mod_log_config: Prevent segfault. PR 50861. [Torsten Förtsch
+     <torsten.foertsch gmx.net>]
+
   *) mod_win32: Invert logic for env var UTF-8 fixing.
      Now we exclude a list of vars which we know for sure they dont hold UTF-8
      chars; all other vars will be fixed. This has the benefit that now also
diff --git a/STATUS b/STATUS
index edb46f00f96d17f4dd66fd6bec672e3715477071..729bafc339382cbc58300ccda869e20d58cfb7ad 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -92,11 +92,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-  * mod_log_config: Fix segfault for 'BufferedLogs Off'. PR 50861.
-    Trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1082518
-    2.2.x patch: Trunk patch works
-    +1: sf, trawick, rjung
-
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]
index f32a67b02b177bc6661b731e17d5095d01a33f19..6a68336767d0089e9ada4c766564bee0f7ce723d 100644 (file)
@@ -1171,6 +1171,10 @@ static const char *set_buffered_logs_on(cmd_parms *parms, void *dummy, int flag)
         ap_log_set_writer_init(ap_buffered_log_writer_init);
         ap_log_set_writer(ap_buffered_log_writer);
     }
+    else {
+        ap_log_set_writer_init(ap_default_log_writer_init);
+        ap_log_set_writer(ap_default_log_writer);
+    }
     return NULL;
 }
 static const command_rec config_log_cmds[] =
@@ -1543,6 +1547,11 @@ static int log_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp)
         log_pfn_register(p, "R", log_handler, 1);
     }
 
+    /* reset to default conditions */
+    ap_log_set_writer_init(ap_default_log_writer_init);
+    ap_log_set_writer(ap_default_log_writer);
+    buffered_logs = 0;
+
     return OK;
 }