@@ -571,12 +571,13 @@ static void write_rule_json(modsec_rec *msr, const msre_rule *rule, yajl_gen g)
571571        yajl_kv_string (g , "version" , log_escape (msr -> mp , rule -> actionset -> version ));
572572    }
573573    if  (rule -> actionset -> logdata ) {
574+         char  * logdata  =  NULL ;
574575        msc_string  * var  =  (msc_string  * )apr_pcalloc (msr -> mp , sizeof (msc_string ));
575576        var -> value  =  (char  * )rule -> actionset -> logdata ;
576577        var -> value_len  =  strlen (rule -> actionset -> logdata );
577578        expand_macros (msr , var , NULL , msr -> mp );
578579
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 ));
580581
581582        // if it is > 512 bytes, then truncate at 512 with ellipsis. 
582583        if  (strlen (logdata ) >  515 ) {
@@ -611,14 +612,15 @@ static void write_rule_json(modsec_rec *msr, const msre_rule *rule, yajl_gen g)
611612    for  (k  =  0 ; k  <  tarr -> nelts ; k ++ ) {
612613        msre_action  * action  =  (msre_action  * )telts [k ].val ;
613614        if  (strcmp (telts [k ].key , "tag" ) ==  0 ) {
615+             msc_string  * var  =  NULL ;
614616            if  (been_opened  ==  0 ) {
615617                yajl_string (g , "tags" );
616618                yajl_gen_array_open (g );
617619                been_opened  =  1 ;
618620            }
619621
620622            // 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 ));
622624            var -> value  =  (char  * )action -> param ;
623625            var -> value_len  =  strlen (action -> param );
624626            expand_macros (msr , var , NULL , msr -> mp );
@@ -676,6 +678,9 @@ void sec_audit_logger_json(modsec_rec *msr) {
676678    int  arg_min , arg_max , sanitize_matched ;
677679    yajl_gen  g ;
678680    int  been_opened  =  0 ; // helper flag for conditionally opening maps 
681+     const  unsigned char   * final_buf ;
682+     size_t  len ;
683+ 
679684
680685    /* Return silently if we don't have a request line. This 
681686     * means we will not be logging request timeouts. 
@@ -1437,8 +1442,6 @@ void sec_audit_logger_json(modsec_rec *msr) {
14371442    /* finished building JSON */ 
14381443    yajl_gen_map_close (g ); // box it up! 
14391444
1440-     const  unsigned char   * final_buf ;
1441-     size_t  len ;
14421445    yajl_gen_get_buf (g , & final_buf , & len );
14431446    sec_auditlog_write (msr , final_buf , len );
14441447
0 commit comments