@@ -630,25 +630,35 @@ static int msre_op_rsub_execute(modsec_rec *msr, msre_rule *rule, msre_var *var,
630630 }
631631
632632 if (msr -> stream_input_data != NULL && input_body == 1 ) {
633+ memset (msr -> stream_input_data , 0x0 , msr -> stream_input_length );
633634 free (msr -> stream_input_data );
634635 msr -> stream_input_data = NULL ;
635636 msr -> stream_input_length = 0 ;
636637#ifdef MSC_LARGE_STREAM_INPUT
637638 msr -> stream_input_allocated_length = 0 ;
638- #endif
639+
640+ msr -> stream_input_data = (char * )malloc (size );
641+ #else
639642 msr -> stream_input_data = (char * )malloc (size + 1 );
643+ #endif
644+
640645 if (msr -> stream_input_data == NULL ) {
641646 return -1 ;
642647 }
643648
644649 msr -> stream_input_length = size ;
645650#ifdef MSC_LARGE_STREAM_INPUT
646651 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 );
647655#endif
648656 msr -> if_stream_changed = 1 ;
649657
650658 memcpy (msr -> stream_input_data , data , size );
659+ #ifndef MSC_LARGE_STREAM_INPUT
651660 msr -> stream_input_data [size ] = '\0' ;
661+ #endif
652662
653663 var -> value_len = size ;
654664 var -> value = msr -> stream_input_data ;
@@ -751,6 +761,7 @@ static int msre_op_validateHash_execute(modsec_rec *msr, msre_rule *rule, msre_v
751761 char * my_error_msg = NULL ;
752762 int ovector [33 ];
753763 int rc ;
764+ const char * pattern = NULL ;
754765 #ifdef WITH_PCRE_STUDY
755766 #ifdef WITH_PCRE_JIT
756767 int jit ;
@@ -780,7 +791,7 @@ static int msre_op_validateHash_execute(modsec_rec *msr, msre_rule *rule, msre_v
780791
781792 expand_macros (msr , re_pattern , rule , msr -> mp );
782793
783- const char * pattern = log_escape_re (msr -> mp , re_pattern -> value );
794+ pattern = log_escape_re (msr -> mp , re_pattern -> value );
784795 if (msr -> txcfg -> debuglog_level >= 6 ) {
785796 msr_log (msr , 6 , "Escaping pattern [%s]" ,pattern );
786797 }
@@ -1534,10 +1545,10 @@ static const char *gsb_replace_tpath(apr_pool_t *pool, const char *domain, int l
15341545 url = apr_palloc (pool , len + 1 );
15351546 data = apr_palloc (pool , len + 1 );
15361547
1537- data [0 ] = '\0' ;
1538-
1548+ memset (data , 0 , len + 1 );
1549+ memset (url , 0 , len + 1 );
1550+
15391551 memcpy (url , domain , len );
1540- url [len ] = 0 ;
15411552
15421553 while (( pos = strstr (url , "/./" )) != NULL ) {
15431554 match = 1 ;
0 commit comments