From: Jim Jagielski Date: Thu, 3 Mar 2016 15:10:27 +0000 (+0000) Subject: Merge r1711479, r1733064, r1733068 from trunk: X-Git-Tag: 2.4.19~105 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2c5fad3847907e327803cde1584fa766b70f1273;p=apache Merge r1711479, r1733064, r1733068 from trunk: Fix crash in ap_mpm_pod_check call caused by NULL dereference of its parameter when starting httpd as single process (httpd -X). Revert changes on mpm_event and mpm_worker from r1711479. The POD is not used in one process mode for those MPMs. Follow up to r1711479 and r1733064: CHANGES entry. Submitted by: jkaluza, ylavic, ylavic Reviewed/backported by: jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1733475 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 04c16cd6c7..bd2470214d 100644 --- a/CHANGES +++ b/CHANGES @@ -75,6 +75,9 @@ Changes with Apache 2.4.19 *) mod_http2: bytes read/written on slave connections are reported via the optional mod_logio functions. Fixes PR 58871. + *) prefork: Initialize the POD when running in ONE_PROCESS (or -X) mode to + avoid a crash. [Jan Kaluza, Yann Ylavic] + *) mod_ssl: Add SSLOCSPProxyURL to add the possibility to do all queries to OCSP responders through a HTTP proxy. [Ruediger Pluem] diff --git a/STATUS b/STATUS index cd2f18907b..970a949c31 100644 --- a/STATUS +++ b/STATUS @@ -112,14 +112,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * prefork: Fix crash in ap_mpm_pod_check call caused by NULL dereference of - its parameter when starting httpd as single process (httpd -X). - trunk patch: http://svn.apache.org/r1711479 - http://svn.apache.org/r1733064 - http://svn.apache.org/r1733068 - 2.4.x patch: http://home.apache.org/~ylavic/patches/httpd-2.4.x-prefork-ONE_PROCESS_POD.patch - +1: ylavic, icing, jim - *) mod_ssl: When SSLVerify is disabled (NONE), don't force a renegotiation if the SSLVerifyDepth applied with the default/handshaken vhost differs from the one applicable with the finally selected vhost. diff --git a/server/mpm/prefork/prefork.c b/server/mpm/prefork/prefork.c index 19adec45a8..f2b4e410cc 100644 --- a/server/mpm/prefork/prefork.c +++ b/server/mpm/prefork/prefork.c @@ -1316,8 +1316,7 @@ static int prefork_open_logs(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, all_buckets = apr_pcalloc(pconf, num_buckets * sizeof(prefork_child_bucket)); for (i = 0; i < num_buckets; i++) { - if (!one_process && /* no POD in one_process mode */ - (rv = ap_mpm_pod_open(pconf, &all_buckets[i].pod))) { + if ((rv = ap_mpm_pod_open(pconf, &all_buckets[i].pod))) { ap_log_error(APLOG_MARK, APLOG_CRIT | level_flags, rv, (startup ? NULL : s), "could not open pipe-of-death");