@@ -571,12 +571,13 @@ static void write_rule_json(modsec_rec *msr, const msre_rule *rule, yajl_gen g)
571
571
yajl_kv_string (g , "version" , log_escape (msr -> mp , rule -> actionset -> version ));
572
572
}
573
573
if (rule -> actionset -> logdata ) {
574
+ char * logdata = NULL ;
574
575
msc_string * var = (msc_string * )apr_pcalloc (msr -> mp , sizeof (msc_string ));
575
576
var -> value = (char * )rule -> actionset -> logdata ;
576
577
var -> value_len = strlen (rule -> actionset -> logdata );
577
578
expand_macros (msr , var , NULL , msr -> mp );
578
579
579
- char * logdata = apr_pstrdup (msr -> mp , log_escape_hex (msr -> mp , (unsigned char * )var -> value , var -> value_len ));
580
+ logdata = apr_pstrdup (msr -> mp , log_escape_hex (msr -> mp , (unsigned char * )var -> value , var -> value_len ));
580
581
581
582
// if it is > 512 bytes, then truncate at 512 with ellipsis.
582
583
if (strlen (logdata ) > 515 ) {
@@ -611,14 +612,15 @@ static void write_rule_json(modsec_rec *msr, const msre_rule *rule, yajl_gen g)
611
612
for (k = 0 ; k < tarr -> nelts ; k ++ ) {
612
613
msre_action * action = (msre_action * )telts [k ].val ;
613
614
if (strcmp (telts [k ].key , "tag" ) == 0 ) {
615
+ msc_string * var = NULL ;
614
616
if (been_opened == 0 ) {
615
617
yajl_string (g , "tags" );
616
618
yajl_gen_array_open (g );
617
619
been_opened = 1 ;
618
620
}
619
621
620
622
// expand variables in the tag
621
- msc_string * var = (msc_string * )apr_pcalloc (msr -> mp , sizeof (msc_string ));
623
+ var = (msc_string * )apr_pcalloc (msr -> mp , sizeof (msc_string ));
622
624
var -> value = (char * )action -> param ;
623
625
var -> value_len = strlen (action -> param );
624
626
expand_macros (msr , var , NULL , msr -> mp );
@@ -676,6 +678,9 @@ void sec_audit_logger_json(modsec_rec *msr) {
676
678
int arg_min , arg_max , sanitize_matched ;
677
679
yajl_gen g ;
678
680
int been_opened = 0 ; // helper flag for conditionally opening maps
681
+ const unsigned char * final_buf ;
682
+ size_t len ;
683
+
679
684
680
685
/* Return silently if we don't have a request line. This
681
686
* means we will not be logging request timeouts.
@@ -1437,8 +1442,6 @@ void sec_audit_logger_json(modsec_rec *msr) {
1437
1442
/* finished building JSON */
1438
1443
yajl_gen_map_close (g ); // box it up!
1439
1444
1440
- const unsigned char * final_buf ;
1441
- size_t len ;
1442
1445
yajl_gen_get_buf (g , & final_buf , & len );
1443
1446
sec_auditlog_write (msr , final_buf , len );
1444
1447
0 commit comments