/[Apache-SVN]
ViewVC logotype

Revision 1888266


Jump to revision: Previous Next
Author: ylavic
Date: Thu Apr 1 09:14:34 2021 UTC (3 years ago)
Changed paths: 1
Log Message:
mod_socache_shmcb: be safe from socache_shmcb_destroy() late call.  PR 59798.

ssl_init_Module() in post_config early registers ssl_init_ModuleKill(), which
will then run after all the next cleanups registered later in post_config, thus
any shm_cleanup() registered from ssl_scache_init::socache_shmcb_init().
This can cause a double SHM cleanup when apr_shm_destroy() is called from
ssl_init_ModuleKill::ssl_scache_kill() as pconf is cleared.

Fix this in mod_socache_shmcb by registering a socache_shmcb_cleanup() after
the SHM is created, and by letting socache_shmcb_destroy() run the cleanup,
such that shm_cleanup() is always and ever called only once.

Ideally apr_shm_create() would be consistent accross platforms to register its
shm_cleanup() on the pool but that's not the case for now (I'm on it), so httpd
has to call apr_shm_destroy() explicitely from several places (we'll be able to
remove ssl_scache_kill() and other similar cleanups once the minimal APR
version required by httpd is fixed..).

We could also fix this by registering ssl_init_ModuleKill() late(r) in
ssl_init_Module(), though the more robust mod_socache_shmcb the better for
all the modules..


Changed paths

Path Details
Directoryhttpd/httpd/trunk/modules/cache/mod_socache_shmcb.c modified , text changed

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26