mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2026-01-13 15:07:10 +03:00
Fixed VAR_CACHE/VAR_DONT_CACHE values with reasons for DONT.
Added a DEBUG_MEM define to disable optimization and for future enhcement. Prevented "counting" vars from being cached. Prevented vars from being cached unless they are marked "available" in phase. Now use var->value as the cache hash key as a unique value. Fixed which pools we are using for rule processing. Updated regression tests for tfns. Updated regression test script to handle extra APR_POOL_DEBUG output. See #364.
This commit is contained in:
@@ -450,7 +450,7 @@ static int var_request_uri_raw_generate(modsec_rec *msr, msre_var *var, msre_rul
|
||||
/* REQUEST_URI */
|
||||
|
||||
static int var_request_uri_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
|
||||
apr_table_t *vartab, apr_pool_t *mptmp)
|
||||
apr_table_t *vartab, apr_pool_t *mptmp) /* dynamic */
|
||||
{
|
||||
char *value = NULL;
|
||||
|
||||
@@ -2134,7 +2134,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_args_combined_size_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2233,7 +2233,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_files_combined_size_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2255,7 +2255,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 1,
|
||||
var_generic_list_validate,
|
||||
var_files_sizes_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2277,7 +2277,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
1, 1,
|
||||
var_generic_list_validate,
|
||||
var_geo_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2288,7 +2288,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
1, 1,
|
||||
var_generic_list_validate,
|
||||
var_global_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2299,7 +2299,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_highest_severity_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2310,7 +2310,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
1, 1,
|
||||
var_generic_list_validate,
|
||||
var_ip_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2321,7 +2321,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_matched_var_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2332,7 +2332,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_matched_var_name_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2354,7 +2354,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_multipart_boundary_quoted_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* flag */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2365,7 +2365,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_multipart_boundary_whitespace_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* flag */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2376,7 +2376,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_multipart_data_after_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* flag */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2387,7 +2387,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_multipart_data_before_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* flag */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2398,7 +2398,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_multipart_header_folding_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* flag */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2409,7 +2409,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_multipart_crlf_line_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* flag */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2420,7 +2420,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_multipart_crlf_lf_lines_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* flag */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2431,7 +2431,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_multipart_lf_line_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* flag */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2442,7 +2442,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_multipart_missing_semicolon_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* flag */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2453,7 +2453,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_multipart_strict_error_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* flag */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2464,7 +2464,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_multipart_unmatched_boundary_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* flag */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2519,7 +2519,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_remote_port_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2541,7 +2541,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
1, 1,
|
||||
var_generic_list_validate,
|
||||
var_resource_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2552,7 +2552,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_reqbody_processor_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2563,7 +2563,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_reqbody_processor_error_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2574,7 +2574,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_reqbody_processor_error_msg_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2585,7 +2585,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_request_basename_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2695,7 +2695,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_request_uri_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2728,7 +2728,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_response_content_length,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_RESPONSE_HEADERS
|
||||
);
|
||||
|
||||
@@ -2783,7 +2783,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_response_status_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_RESPONSE_HEADERS
|
||||
);
|
||||
|
||||
@@ -2794,7 +2794,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
1, 1,
|
||||
NULL,
|
||||
var_rule_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_RESPONSE_HEADERS
|
||||
);
|
||||
|
||||
@@ -2805,7 +2805,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_script_gid_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2816,7 +2816,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_script_basename_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2838,7 +2838,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_script_groupname_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2849,7 +2849,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_script_mode_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2860,7 +2860,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_script_uid_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2871,7 +2871,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_script_username_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
|
||||
@@ -2904,7 +2904,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_server_port_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* temp copy */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2915,7 +2915,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
1, 1,
|
||||
var_generic_list_validate,
|
||||
var_session_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2926,7 +2926,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_sessionid_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_RESPONSE_HEADERS
|
||||
);
|
||||
|
||||
@@ -2948,7 +2948,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
1, 1,
|
||||
var_generic_list_validate,
|
||||
var_user_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2959,7 +2959,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_userid_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_RESPONSE_HEADERS
|
||||
);
|
||||
|
||||
@@ -2970,7 +2970,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_time_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2981,7 +2981,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_time_day_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -2992,7 +2992,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_time_epoch_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -3003,7 +3003,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_time_hour_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -3014,7 +3014,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_time_min_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -3025,7 +3025,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_time_mon_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -3036,7 +3036,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_time_sec_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -3047,7 +3047,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_time_wday_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -3058,7 +3058,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_time_year_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -3069,7 +3069,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
1, 1,
|
||||
var_generic_list_validate,
|
||||
var_tx_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -3091,7 +3091,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 0,
|
||||
NULL,
|
||||
var_webserver_error_log_generate,
|
||||
VAR_DONT_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_HEADERS
|
||||
);
|
||||
|
||||
@@ -3102,7 +3102,7 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
||||
0, 1,
|
||||
var_xml_validate,
|
||||
var_xml_generate,
|
||||
VAR_CACHE,
|
||||
VAR_DONT_CACHE, /* dynamic */
|
||||
PHASE_REQUEST_BODY
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user