diff options
author | Stefan Fritsch <sf@apache.org> | 2010-11-18 21:15:24 +0100 |
---|---|---|
committer | Stefan Fritsch <sf@apache.org> | 2010-11-18 21:15:24 +0100 |
commit | 39db8e5413ae95e9216c6da95b35c5f2ce5846b6 (patch) | |
tree | 1d3ac6c55ae191ad7f9b2644a7e3c6d9605e81bb | |
parent | ./build.sh all (diff) | |
download | apache2-39db8e5413ae95e9216c6da95b35c5f2ce5846b6.tar.xz apache2-39db8e5413ae95e9216c6da95b35c5f2ce5846b6.zip |
mod_proxy: Fix ProxyPassInterpolateEnv directive.
PR: 50292
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1036602 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | CHANGES | 3 | ||||
-rw-r--r-- | include/ap_mmn.h | 3 | ||||
-rw-r--r-- | include/http_config.h | 12 | ||||
-rw-r--r-- | modules/proxy/mod_proxy.c | 2 | ||||
-rw-r--r-- | server/config.c | 12 |
5 files changed, 29 insertions, 3 deletions
@@ -6,6 +6,9 @@ Changes with Apache 2.3.9 Fix a denial of service attack against mod_reqtimeout. [Stefan Fritsch] + *) mod_proxy: Fix ProxyPassInterpolateEnv directive. PR 50292. + [Stefan Fritsch] + *) suEXEC: Add Suexec directive to disable suEXEC without renaming the binary (Suexec Off), or force startup failure if suEXEC is required but not supported (Suexec On). Change SuexecUserGroup to fail diff --git a/include/ap_mmn.h b/include/ap_mmn.h index 792c8cd837..3f7d3d566c 100644 --- a/include/ap_mmn.h +++ b/include/ap_mmn.h @@ -284,6 +284,7 @@ * 20101106.1 (2.3.9-dev) Add ap_pool_cleanup_set_null() generic cleanup * 20101106.2 (2.3.9-dev) Add suexec_disabled_reason field to ap_unixd_config * 20101113.0 (2.3.9-dev) Add source address to mod_proxy.h + * 20101113.1 (2.3.9-dev) Add ap_set_flag_slot_char() */ #define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */ @@ -291,7 +292,7 @@ #ifndef MODULE_MAGIC_NUMBER_MAJOR #define MODULE_MAGIC_NUMBER_MAJOR 20101113 #endif -#define MODULE_MAGIC_NUMBER_MINOR 0 /* 0...n */ +#define MODULE_MAGIC_NUMBER_MINOR 1 /* 0...n */ /** * Determine if the server's current MODULE_MAGIC_NUMBER is at least a diff --git a/include/http_config.h b/include/http_config.h index 47a90cc546..66f73bac7c 100644 --- a/include/http_config.h +++ b/include/http_config.h @@ -640,7 +640,7 @@ AP_DECLARE_NONSTD(const char *) ap_set_string_slot_lower(cmd_parms *cmd, void *struct_ptr, const char *arg); /** - * Generic command handling function for flags + * Generic command handling function for flags stored in an int * @param cmd The command parameters for this directive * @param struct_ptr pointer into a given type * @param arg The argument to the directive (either 1 or 0) @@ -650,6 +650,16 @@ AP_DECLARE_NONSTD(const char *) ap_set_flag_slot(cmd_parms *cmd, void *struct_ptr, int arg); /** + * Generic command handling function for flags stored in a char + * @param cmd The command parameters for this directive + * @param struct_ptr pointer into a given type + * @param arg The argument to the directive (either 1 or 0) + * @return An error string or NULL on success + */ +AP_DECLARE_NONSTD(const char *) ap_set_flag_slot_char(cmd_parms *cmd, + void *struct_ptr, + int arg); +/** * Generic command handling function for files * @param cmd The command parameters for this directive * @param struct_ptr pointer into a given type diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c index 23eab0e65e..dc66bb7dd3 100644 --- a/modules/proxy/mod_proxy.c +++ b/modules/proxy/mod_proxy.c @@ -2170,7 +2170,7 @@ static const command_rec proxy_cmds[] = "a scheme, partial URL or '*' and a proxy server"), AP_INIT_TAKE2("ProxyRemoteMatch", add_proxy_regex, NULL, RSRC_CONF, "a regex pattern and a proxy server"), - AP_INIT_FLAG("ProxyPassInterpolateEnv", ap_set_flag_slot, + AP_INIT_FLAG("ProxyPassInterpolateEnv", ap_set_flag_slot_char, (void*)APR_OFFSETOF(proxy_dir_conf, interpolate_env), RSRC_CONF|ACCESS_CONF, "Interpolate Env Vars in reverse Proxy") , AP_INIT_RAW_ARGS("ProxyPass", add_pass_noregex, NULL, RSRC_CONF|ACCESS_CONF, diff --git a/server/config.c b/server/config.c index dbbbaca379..465ee59e10 100644 --- a/server/config.c +++ b/server/config.c @@ -1396,6 +1396,18 @@ AP_DECLARE_NONSTD(const char *) ap_set_flag_slot(cmd_parms *cmd, return NULL; } +AP_DECLARE_NONSTD(const char *) ap_set_flag_slot_char(cmd_parms *cmd, + void *struct_ptr_v, int arg) +{ + int offset = (int)(long)cmd->info; + char *struct_ptr = (char *)struct_ptr_v; + + *(struct_ptr + offset) = arg ? 1 : 0; + + return NULL; +} + + AP_DECLARE_NONSTD(const char *) ap_set_file_slot(cmd_parms *cmd, void *struct_ptr, const char *arg) { |