@@ -64,6 +64,7 @@ void *create_directory_config(apr_pool_t *mp, char *path)
64
64
65
65
dcfg -> cookie_format = NOT_SET ;
66
66
dcfg -> argument_separator = NOT_SET ;
67
+ dcfg -> cookiev0_separator = NOT_SET_P ;
67
68
68
69
dcfg -> rule_inheritance = NOT_SET ;
69
70
dcfg -> rule_exceptions = apr_array_make (mp , 16 , sizeof (rule_exception * ));
@@ -366,6 +367,8 @@ void *merge_directory_configs(apr_pool_t *mp, void *_parent, void *_child)
366
367
? parent -> cookie_format : child -> cookie_format );
367
368
merged -> argument_separator = (child -> argument_separator == NOT_SET
368
369
? parent -> argument_separator : child -> argument_separator );
370
+ merged -> cookiev0_separator = (child -> cookiev0_separator == NOT_SET_P
371
+ ? parent -> cookiev0_separator : child -> cookiev0_separator );
369
372
370
373
371
374
/* rule inheritance */
@@ -627,6 +630,7 @@ void init_directory_config(directory_config *dcfg)
627
630
628
631
if (dcfg -> cookie_format == NOT_SET ) dcfg -> cookie_format = 0 ;
629
632
if (dcfg -> argument_separator == NOT_SET ) dcfg -> argument_separator = '&' ;
633
+ if (dcfg -> cookiev0_separator == NOT_SET_P ) dcfg -> cookiev0_separator = NULL ;
630
634
631
635
if (dcfg -> rule_inheritance == NOT_SET ) dcfg -> rule_inheritance = 1 ;
632
636
@@ -1084,6 +1088,20 @@ static const char *cmd_marker(cmd_parms *cmd, void *_dcfg, const char *p1)
1084
1088
return add_marker (cmd , (directory_config * )_dcfg , SECMARKER_TARGETS , SECMARKER_ARGS , action );
1085
1089
}
1086
1090
1091
+ static const char * cmd_cookiev0_separator (cmd_parms * cmd , void * _dcfg ,
1092
+ const char * p1 )
1093
+ {
1094
+ directory_config * dcfg = (directory_config * )_dcfg ;
1095
+
1096
+ if (strlen (p1 ) != 1 ) {
1097
+ return apr_psprintf (cmd -> pool , "ModSecurity: Invalid cookie v0 separator: %s" , p1 );
1098
+ }
1099
+
1100
+ dcfg -> cookiev0_separator = p1 ;
1101
+
1102
+ return NULL ;
1103
+ }
1104
+
1087
1105
static const char * cmd_argument_separator (cmd_parms * cmd , void * _dcfg ,
1088
1106
const char * p1 )
1089
1107
{
@@ -2785,6 +2803,14 @@ const command_rec module_directives[] = {
2785
2803
"character that will be used as separator when parsing application/x-www-form-urlencoded content."
2786
2804
),
2787
2805
2806
+ AP_INIT_TAKE1 (
2807
+ "SecCookiev0Separator" ,
2808
+ cmd_cookiev0_separator ,
2809
+ NULL ,
2810
+ CMD_SCOPE_ANY ,
2811
+ "character that will be used as separator when parsing cookie v0 content."
2812
+ ),
2813
+
2788
2814
AP_INIT_TAKE1 (
2789
2815
"SecAuditEngine" ,
2790
2816
cmd_audit_engine ,
0 commit comments