diff --git a/src/app-layer-htp.c b/src/app-layer-htp.c index 39ce9754ed..1f0cece872 100644 --- a/src/app-layer-htp.c +++ b/src/app-layer-htp.c @@ -77,6 +77,7 @@ #include "decode-events.h" #include "util-memcmp.h" +#include "util-random.h" //#define PRINT @@ -2199,12 +2200,15 @@ static void HTPConfigSetDefaultsPhase2(char *name, HTPCfgRec *cfg_prec) if (cfg_prec->randomize) { int rdrange = cfg_prec->randomize_range; + long int r = RandomGet(); cfg_prec->request.inspect_min_size += (int) (cfg_prec->request.inspect_min_size * - (random() * 1.0 / RAND_MAX - 0.5) * rdrange / 100); + (r * 1.0 / RAND_MAX - 0.5) * rdrange / 100); + + r = RandomGet(); cfg_prec->request.inspect_window += (int) (cfg_prec->request.inspect_window * - (random() * 1.0 / RAND_MAX - 0.5) * rdrange / 100); + (r * 1.0 / RAND_MAX - 0.5) * rdrange / 100); SCLogConfig("'%s' server has 'request-body-minimal-inspect-size' set to" " %d and 'request-body-inspect-window' set to %d after" " randomization.", @@ -2213,12 +2217,15 @@ static void HTPConfigSetDefaultsPhase2(char *name, HTPCfgRec *cfg_prec) cfg_prec->request.inspect_window); + r = RandomGet(); cfg_prec->response.inspect_min_size += (int) (cfg_prec->response.inspect_min_size * - (random() * 1.0 / RAND_MAX - 0.5) * rdrange / 100); + (r * 1.0 / RAND_MAX - 0.5) * rdrange / 100); + + r = RandomGet(); cfg_prec->response.inspect_window += (int) (cfg_prec->response.inspect_window * - (random() * 1.0 / RAND_MAX - 0.5) * rdrange / 100); + (r * 1.0 / RAND_MAX - 0.5) * rdrange / 100); SCLogConfig("'%s' server has 'response-body-minimal-inspect-size' set to" " %d and 'response-body-inspect-window' set to %d after" diff --git a/src/stream-tcp.c b/src/stream-tcp.c index b3b861bdef..022dca1991 100644 --- a/src/stream-tcp.c +++ b/src/stream-tcp.c @@ -73,6 +73,7 @@ #include "util-misc.h" #include "util-validate.h" #include "util-runmodes.h" +#include "util-random.h" #include "source-pcap-file.h" @@ -505,8 +506,6 @@ void StreamTcpInitConfig(char quiet) exit(EXIT_FAILURE); } } - /* set a "random" seed */ - srandom(time(0)); } char *temp_stream_reassembly_toserver_chunk_size_str; @@ -526,9 +525,10 @@ void StreamTcpInitConfig(char quiet) } if (randomize) { + long int r = RandomGet(); stream_config.reassembly_toserver_chunk_size += (int) (stream_config.reassembly_toserver_chunk_size * - (random() * 1.0 / RAND_MAX - 0.5) * rdrange / 100); + (r * 1.0 / RAND_MAX - 0.5) * rdrange / 100); } StreamMsgQueueSetMinChunkLen(FLOW_PKT_TOSERVER, stream_config.reassembly_toserver_chunk_size); @@ -550,9 +550,10 @@ void StreamTcpInitConfig(char quiet) } if (randomize) { + long int r = RandomGet(); stream_config.reassembly_toclient_chunk_size += (int) (stream_config.reassembly_toclient_chunk_size * - (random() * 1.0 / RAND_MAX - 0.5) * rdrange / 100); + (r * 1.0 / RAND_MAX - 0.5) * rdrange / 100); } StreamMsgQueueSetMinChunkLen(FLOW_PKT_TOCLIENT,