Done in r1639960.
CJ
Le 15/11/2014 08:32, Marion & Christophe JAILLET a écrit :
Hi,
the same pattern exists in eventopt.
CJ
Le 12/11/2014 18:32, cove...@apache.org a écrit :
Author: covener
Date: Wed Nov 12 17:32:24 2014
New Revision: 1638879
URL: http://svn.apache.org/r1638879
Log:
avoid dereferencing a recently apr_pool_clear()'ed event_conn_state_t
*cs
in several paths where ptrans is being recycled at the end of a request.
Modified:
httpd/httpd/trunk/server/mpm/event/event.c
Modified: httpd/httpd/trunk/server/mpm/event/event.c
URL:
http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/event/event.c?rev=1638879&r1=1638878&r2=1638879&view=diff
==============================================================================
--- httpd/httpd/trunk/server/mpm/event/event.c (original)
+++ httpd/httpd/trunk/server/mpm/event/event.c Wed Nov 12 17:32:24 2014
@@ -852,6 +852,7 @@ static int start_lingering_close_common(
rv = apr_pollset_add(event_pollset, &cs->pfd);
apr_thread_mutex_unlock(timeout_mutex);
if (rv != APR_SUCCESS && !APR_STATUS_IS_EEXIST(rv)) {
+ apr_pool_t *p = cs->p;
ap_log_error(APLOG_MARK, APLOG_ERR, rv, ap_server_conf,
"start_lingering_close: apr_pollset_add
failure");
apr_thread_mutex_lock(timeout_mutex);
@@ -859,7 +860,7 @@ static int start_lingering_close_common(
apr_thread_mutex_unlock(timeout_mutex);
apr_socket_close(cs->pfd.desc.s);
apr_pool_clear(cs->p);
- ap_push_pool(worker_queue_info, cs->p);
+ ap_push_pool(worker_queue_info, p);
return 0;
}
return 1;
[...]