diff options
author | Yann Ylavic <ylavic@apache.org> | 2017-10-28 18:05:51 +0200 |
---|---|---|
committer | Yann Ylavic <ylavic@apache.org> | 2017-10-28 18:05:51 +0200 |
commit | aa06756e7d94baea79fdc0f3fc9d586c07bffc26 (patch) | |
tree | d677ddfadbd246afe5c3f7dc4454c14b48012445 /modules/core | |
parent | mod_md: fix [-Werror=unused-but-set-variable]. (diff) | |
download | apache2-aa06756e7d94baea79fdc0f3fc9d586c07bffc26.tar.xz apache2-aa06756e7d94baea79fdc0f3fc9d586c07bffc26.zip |
mod_macro: fix usability of globally defined macros in .htaccess files.
PR 57525.
Reverts pre_config hook from r1656669 (happens too late for EXEC_ON_READ), and
ensures ap_macros is reset on restart with a pconf cleanup.
Proposed by: Jose Kahan <jose w3.org>
Reviewed by: ylavic
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1813643 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/core')
-rw-r--r-- | modules/core/mod_macro.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/modules/core/mod_macro.c b/modules/core/mod_macro.c index 7a3f8ad179..cbb5a29634 100644 --- a/modules/core/mod_macro.c +++ b/modules/core/mod_macro.c @@ -711,11 +711,17 @@ static const char *macro_section(cmd_parms * cmd, debug(fprintf(stderr, "macro_section: arg='%s'\n", arg)); /* lazy initialization */ - if (ap_macros == NULL) - ap_macros = apr_hash_make(cmd->temp_pool); - ap_assert(ap_macros != NULL); - - pool = apr_hash_pool_get(ap_macros); + if (ap_macros == NULL) { + pool = cmd->pool; + ap_macros = apr_hash_make(pool); + ap_assert(ap_macros != NULL); + apr_pool_cleanup_register(pool, &ap_macros, + ap_pool_cleanup_set_null, + apr_pool_cleanup_null); + } + else { + pool = apr_hash_pool_get(ap_macros); + } endp = (char *) ap_strrchr_c(arg, '>'); @@ -954,12 +960,6 @@ static const char *macro_ignore_bad_nesting(cmd_parms * cmd, void *dummy) return NULL; } -static int macro_pre_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp) -{ - ap_macros = NULL; - return OK; -} - /************************************************************* EXPORT MODULE */ /* @@ -982,11 +982,6 @@ static const command_rec macro_cmds[] = { {NULL} }; -static void macro_hooks(apr_pool_t *p) -{ - ap_hook_pre_config(macro_pre_config, NULL, NULL, APR_HOOK_MIDDLE); -} - /* Module hooks are request-oriented thus it does not suit configuration file utils a lot. I haven't found any clean hook to apply something @@ -1004,5 +999,5 @@ AP_DECLARE_MODULE(macro) = { NULL, /* create per-server config structure */ NULL, /* merge per-server config structures */ macro_cmds, /* configuration commands */ - macro_hooks /* register hooks */ + NULL /* register hooks */ }; |