diff --git a/CHANGES b/CHANGES index d3cabef2..5b2d2b25 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,8 @@ * Fixed ModSecurity cannot load session and user sdbm data. + * Fixed updateTargetById was creating rule unparsed content making apache memory grow. + * Code cleanup. 23 Feb 2012 - 2.6.4-rc1 diff --git a/apache2/re.c b/apache2/re.c index 59b0d0a5..c5ddff2e 100644 --- a/apache2/re.c +++ b/apache2/re.c @@ -237,17 +237,24 @@ char *update_rule_target(cmd_parms *cmd, directory_config *dcfg, p = apr_strtok(NULL,",",&savedptr); } - curr_targets = msre_generate_target_string(ruleset->mp, rule); - - rule->unparsed = msre_rule_generate_unparsed(ruleset->mp, rule, curr_targets, NULL, NULL); + if(match == 0) { + curr_targets = msre_generate_target_string(ruleset->mp, rule); + rule->unparsed = msre_rule_generate_unparsed(ruleset->mp, rule, curr_targets, NULL, NULL); + } end: - if(target_list != NULL) + if(target_list != NULL) { free(target_list); - if(replace != NULL) + target_list = NULL; + } + if(replace != NULL) { free(replace); - if(target != NULL) + replace = NULL; + } + if(target != NULL) { free(target); + target = NULL; + } return NULL; }