From: Guenter Knauf Date: Sat, 29 Oct 2011 19:54:52 +0000 (+0000) Subject: Applied backport. X-Git-Tag: 2.2.22~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7a65f03f17508a82ccf3330041bc04f56b51fdc0;p=thirdparty%2Fapache%2Fhttpd.git Applied backport. Close PR 50861 where enabling and disabling of buffered logs can cause a segfault. Patch by: Torsten Förtsch 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 --- diff --git a/CHANGES b/CHANGES index e5a97b2cd55..f947c91b050 100644 --- 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 + ] + *) 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 edb46f00f96..729bafc3393 100644 --- 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 ] diff --git a/modules/loggers/mod_log_config.c b/modules/loggers/mod_log_config.c index f32a67b02b1..6a68336767d 100644 --- a/modules/loggers/mod_log_config.c +++ b/modules/loggers/mod_log_config.c @@ -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; }