It's totally unsafe to use apr_pool_userdata_setn() in the post_config
phase of a module, since on some platforms when the DSO gets reloaded
between phases, the data segment will be at a different address on the
second phase and the userdata_get() call will fail.
PR: 9413
Submitted by: Tsuyoshi Sasamoto <nazonazo@super.win.ne.jp>
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@95287
13f79535-47bb-0310-9956-
ffa450edef68
Changes with Apache 2.0.37
+ *) Fix segfaults at startup on some platforms when mod_auth_digest,
+ mod_suexec, or mod_ssl were used as DSO's due to the way they
+ were tracking the current init phase since DSO's get completely
+ unloaded and reloaded between phases. PR 9413.
+ [Tsuyoshi Sasamoto <nazonazo@super.win.ne.jp>, Brad Nicholes]
+
*) Fix mod_include's handling of regular expressions in
"<!--#if" directives [Julius Gawlas <julius_gawlas@hp.com>]
ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s,
"suEXEC mechanism enabled (wrapper: %s)", SUEXEC_BIN);
- apr_pool_userdata_setn((void *)1, SUEXEC_POST_CONFIG_USERDATA,
- apr_pool_cleanup_null, s->process->pool);
+ apr_pool_userdata_set((void *)1, SUEXEC_POST_CONFIG_USERDATA,
+ apr_pool_cleanup_null, s->process->pool);
}
return OK;
apr_pool_userdata_get(&data, userdata_key, s->process->pool);
if (!data) {
- apr_pool_userdata_setn((const void *)1, userdata_key,
- apr_pool_cleanup_null, s->process->pool);
+ apr_pool_userdata_set((const void *)1, userdata_key,
+ apr_pool_cleanup_null, s->process->pool);
return;
}
if (mc->nSessionCacheMode == SSL_SCMODE_SHMHT)