summaryrefslogtreecommitdiffstats
path: root/modules/core
diff options
context:
space:
mode:
authorYann Ylavic <ylavic@apache.org>2017-10-28 18:05:51 +0200
committerYann Ylavic <ylavic@apache.org>2017-10-28 18:05:51 +0200
commitaa06756e7d94baea79fdc0f3fc9d586c07bffc26 (patch)
treed677ddfadbd246afe5c3f7dc4454c14b48012445 /modules/core
parentmod_md: fix [-Werror=unused-but-set-variable]. (diff)
downloadapache2-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.c29
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 */
};