@@ -630,25 +630,35 @@ static int msre_op_rsub_execute(modsec_rec *msr, msre_rule *rule, msre_var *var,
630
630
}
631
631
632
632
if (msr -> stream_input_data != NULL && input_body == 1 ) {
633
+ memset (msr -> stream_input_data , 0x0 , msr -> stream_input_length );
633
634
free (msr -> stream_input_data );
634
635
msr -> stream_input_data = NULL ;
635
636
msr -> stream_input_length = 0 ;
636
637
#ifdef MSC_LARGE_STREAM_INPUT
637
638
msr -> stream_input_allocated_length = 0 ;
638
- #endif
639
+
640
+ msr -> stream_input_data = (char * )malloc (size );
641
+ #else
639
642
msr -> stream_input_data = (char * )malloc (size + 1 );
643
+ #endif
644
+
640
645
if (msr -> stream_input_data == NULL ) {
641
646
return -1 ;
642
647
}
643
648
644
649
msr -> stream_input_length = size ;
645
650
#ifdef MSC_LARGE_STREAM_INPUT
646
651
msr -> stream_input_allocated_length = size ;
652
+ memset (msr -> stream_input_data , 0x0 , size );
653
+ #else
654
+ memset (msr -> stream_input_data , 0x0 , size + 1 );
647
655
#endif
648
656
msr -> if_stream_changed = 1 ;
649
657
650
658
memcpy (msr -> stream_input_data , data , size );
659
+ #ifndef MSC_LARGE_STREAM_INPUT
651
660
msr -> stream_input_data [size ] = '\0' ;
661
+ #endif
652
662
653
663
var -> value_len = size ;
654
664
var -> value = msr -> stream_input_data ;
@@ -751,6 +761,7 @@ static int msre_op_validateHash_execute(modsec_rec *msr, msre_rule *rule, msre_v
751
761
char * my_error_msg = NULL ;
752
762
int ovector [33 ];
753
763
int rc ;
764
+ const char * pattern = NULL ;
754
765
#ifdef WITH_PCRE_STUDY
755
766
#ifdef WITH_PCRE_JIT
756
767
int jit ;
@@ -780,7 +791,7 @@ static int msre_op_validateHash_execute(modsec_rec *msr, msre_rule *rule, msre_v
780
791
781
792
expand_macros (msr , re_pattern , rule , msr -> mp );
782
793
783
- const char * pattern = log_escape_re (msr -> mp , re_pattern -> value );
794
+ pattern = log_escape_re (msr -> mp , re_pattern -> value );
784
795
if (msr -> txcfg -> debuglog_level >= 6 ) {
785
796
msr_log (msr , 6 , "Escaping pattern [%s]" ,pattern );
786
797
}
@@ -1534,10 +1545,10 @@ static const char *gsb_replace_tpath(apr_pool_t *pool, const char *domain, int l
1534
1545
url = apr_palloc (pool , len + 1 );
1535
1546
data = apr_palloc (pool , len + 1 );
1536
1547
1537
- data [0 ] = '\0' ;
1538
-
1548
+ memset (data , 0 , len + 1 );
1549
+ memset (url , 0 , len + 1 );
1550
+
1539
1551
memcpy (url , domain , len );
1540
- url [len ] = 0 ;
1541
1552
1542
1553
while (( pos = strstr (url , "/./" )) != NULL ) {
1543
1554
match = 1 ;
0 commit comments