mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-09-29 19:24:29 +03:00
Fixed: SecPerfRuleTimes storing unwanted rules
This commit is contained in:
@@ -391,11 +391,9 @@ apr_status_t modsecurity_tx_init(modsec_rec *msr) {
|
|||||||
if (msr->matched_vars == NULL) return -1;
|
if (msr->matched_vars == NULL) return -1;
|
||||||
apr_table_clear(msr->matched_vars);
|
apr_table_clear(msr->matched_vars);
|
||||||
|
|
||||||
if(msr->txcfg->max_rule_time > 0) {
|
|
||||||
msr->perf_rules = apr_table_make(msr->mp, 8);
|
msr->perf_rules = apr_table_make(msr->mp, 8);
|
||||||
if (msr->perf_rules == NULL) return -1;
|
if (msr->perf_rules == NULL) return -1;
|
||||||
apr_table_clear(msr->perf_rules);
|
apr_table_clear(msr->perf_rules);
|
||||||
}
|
|
||||||
|
|
||||||
/* Locate the cookie headers and parse them */
|
/* Locate the cookie headers and parse them */
|
||||||
arr = apr_table_elts(msr->request_headers);
|
arr = apr_table_elts(msr->request_headers);
|
||||||
|
@@ -2604,15 +2604,19 @@ static int execute_operator(msre_var *var, msre_rule *rule, modsec_rec *msr,
|
|||||||
rt_time = apr_table_get(msr->perf_rules, rule->actionset->id);
|
rt_time = apr_table_get(msr->perf_rules, rule->actionset->id);
|
||||||
if(rt_time == NULL) {
|
if(rt_time == NULL) {
|
||||||
rt_time = apr_psprintf(msr->mp, "%" APR_TIME_T_FMT, (t1 - time_before_op));
|
rt_time = apr_psprintf(msr->mp, "%" APR_TIME_T_FMT, (t1 - time_before_op));
|
||||||
|
rule_time = (apr_time_t)atoi(rt_time);
|
||||||
|
if(rule_time >= msr->txcfg->max_rule_time)
|
||||||
apr_table_setn(msr->perf_rules, rule->actionset->id, rt_time);
|
apr_table_setn(msr->perf_rules, rule->actionset->id, rt_time);
|
||||||
} else {
|
} else {
|
||||||
rule_time = (apr_time_t)atoi(rt_time);
|
rule_time = (apr_time_t)atoi(rt_time);
|
||||||
rule_time += (t1 - time_before_op);
|
rule_time += (t1 - time_before_op);
|
||||||
|
if(rule_time >= msr->txcfg->max_rule_time) {
|
||||||
rt_time = apr_psprintf(msr->mp, "%" APR_TIME_T_FMT, rule_time);
|
rt_time = apr_psprintf(msr->mp, "%" APR_TIME_T_FMT, rule_time);
|
||||||
apr_table_setn(msr->perf_rules, rule->actionset->id, rt_time);
|
apr_table_setn(msr->perf_rules, rule->actionset->id, rt_time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
|
Reference in New Issue
Block a user