Loading CHANGES +3 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,9 @@ Changes with Apache 2.3.0 [Remove entries to the current 2.0 and 2.2 section below, when backported] *) mod_ext_filter: Handle filter names which include capital letters. PR 40323. [Jeff Trawick] *) mod_deflate: Rework inflate output and deflate output filter to fix several issues: Incorrect handling of flush buckets, potential memory leaks, excessive memory usage in inflate output filter for large compressed Loading modules/filters/mod_ext_filter.c +12 −2 Original line number Diff line number Diff line Loading @@ -206,6 +206,7 @@ static const char *define_filter(cmd_parms *cmd, void *dummy, const char *args) &ext_filter_module); const char *token; const char *name; char *normalized_name; ef_filter_t *filter; name = ap_getword_white(cmd->pool, &args); Loading @@ -213,7 +214,16 @@ static const char *define_filter(cmd_parms *cmd, void *dummy, const char *args) return "Filter name not found"; } if (apr_hash_get(conf->h, name, APR_HASH_KEY_STRING)) { /* During request processing, we find information about the filter * by looking up the filter name provided by core server in our * hash table. But the core server has normalized the filter * name by converting it to lower case. Thus, when adding the * filter to our hash table we have to use lower case as well. */ normalized_name = apr_pstrdup(cmd->pool, name); ap_str_tolower(normalized_name); if (apr_hash_get(conf->h, normalized_name, APR_HASH_KEY_STRING)) { return apr_psprintf(cmd->pool, "ExtFilter %s is already defined", name); } Loading @@ -222,7 +232,7 @@ static const char *define_filter(cmd_parms *cmd, void *dummy, const char *args) filter->name = name; filter->mode = OUTPUT_FILTER; filter->ftype = AP_FTYPE_RESOURCE; apr_hash_set(conf->h, name, APR_HASH_KEY_STRING, filter); apr_hash_set(conf->h, normalized_name, APR_HASH_KEY_STRING, filter); while (*args) { while (apr_isspace(*args)) { Loading Loading
CHANGES +3 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,9 @@ Changes with Apache 2.3.0 [Remove entries to the current 2.0 and 2.2 section below, when backported] *) mod_ext_filter: Handle filter names which include capital letters. PR 40323. [Jeff Trawick] *) mod_deflate: Rework inflate output and deflate output filter to fix several issues: Incorrect handling of flush buckets, potential memory leaks, excessive memory usage in inflate output filter for large compressed Loading
modules/filters/mod_ext_filter.c +12 −2 Original line number Diff line number Diff line Loading @@ -206,6 +206,7 @@ static const char *define_filter(cmd_parms *cmd, void *dummy, const char *args) &ext_filter_module); const char *token; const char *name; char *normalized_name; ef_filter_t *filter; name = ap_getword_white(cmd->pool, &args); Loading @@ -213,7 +214,16 @@ static const char *define_filter(cmd_parms *cmd, void *dummy, const char *args) return "Filter name not found"; } if (apr_hash_get(conf->h, name, APR_HASH_KEY_STRING)) { /* During request processing, we find information about the filter * by looking up the filter name provided by core server in our * hash table. But the core server has normalized the filter * name by converting it to lower case. Thus, when adding the * filter to our hash table we have to use lower case as well. */ normalized_name = apr_pstrdup(cmd->pool, name); ap_str_tolower(normalized_name); if (apr_hash_get(conf->h, normalized_name, APR_HASH_KEY_STRING)) { return apr_psprintf(cmd->pool, "ExtFilter %s is already defined", name); } Loading @@ -222,7 +232,7 @@ static const char *define_filter(cmd_parms *cmd, void *dummy, const char *args) filter->name = name; filter->mode = OUTPUT_FILTER; filter->ftype = AP_FTYPE_RESOURCE; apr_hash_set(conf->h, name, APR_HASH_KEY_STRING, filter); apr_hash_set(conf->h, normalized_name, APR_HASH_KEY_STRING, filter); while (*args) { while (apr_isspace(*args)) { Loading