Skip to content

Commit b354c71

Browse files
author
Marc Stern
authored
Merge pull request #2960 from marcstern/v2/mst/mem_leak1
Fixed 2 memory leaks
2 parents 8f3ef37 + eab780e commit b354c71

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

apache2/re.c

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -378,16 +378,21 @@ char *update_rule_target_ex(modsec_rec *msr, msre_ruleset *ruleset, msre_rule *r
378378
}
379379
#if !defined(MSC_TEST)
380380
else {
381-
ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL, " ModSecurity: Cannot find varibale to replace");
381+
ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL, " ModSecurity: Cannot find variable to replace");
382382
}
383383
#endif
384384
goto end;
385385
}
386386
} else {
387387

388388
target = strdup(p);
389-
if(target == NULL)
390-
return NULL;
389+
if(target == NULL) {
390+
if(target_list != NULL)
391+
free(target_list);
392+
if(replace != NULL)
393+
free(replace);
394+
return NULL;
395+
}
391396

392397
is_negated = is_counting = 0;
393398
param = name = value = NULL;
@@ -421,6 +426,8 @@ char *update_rule_target_ex(modsec_rec *msr, msre_ruleset *ruleset, msre_rule *r
421426
free(target_list);
422427
if(replace != NULL)
423428
free(replace);
429+
if(target != NULL)
430+
free(target);
424431
if(msr) {
425432
msr_log(msr, 9, "Error to update target - [%s] is not valid target", name);
426433
}
@@ -512,18 +519,12 @@ char *update_rule_target_ex(modsec_rec *msr, msre_ruleset *ruleset, msre_rule *r
512519
}
513520

514521
end:
515-
if(target_list != NULL) {
522+
if(target_list != NULL)
516523
free(target_list);
517-
target_list = NULL;
518-
}
519-
if(replace != NULL) {
524+
if(replace != NULL)
520525
free(replace);
521-
replace = NULL;
522-
}
523-
if(target != NULL) {
526+
if(target != NULL)
524527
free(target);
525-
target = NULL;
526-
}
527528
return NULL;
528529
}
529530

0 commit comments

Comments
 (0)