diff src/os/unix/ngx_process_cycle.c @ 6651:7d4e33092e2a

Always seed PRNG with PID, seconds, and milliseconds.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 04 Aug 2016 23:43:10 +0300
parents 1a1d55834b5c
children ca709bca4b77
line wrap: on
line diff
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -785,6 +785,7 @@ ngx_worker_process_init(ngx_cycle_t *cyc
 {
     sigset_t          set;
     ngx_int_t         n;
+    ngx_time_t       *tp;
     ngx_uint_t        i;
     ngx_cpuset_t     *cpu_affinity;
     struct rlimit     rlmt;
@@ -884,7 +885,8 @@ ngx_worker_process_init(ngx_cycle_t *cyc
                       "sigprocmask() failed");
     }
 
-    srandom(((unsigned) ngx_pid << 16) ^ ngx_time());
+    tp = ngx_timeofday();
+    srandom(((unsigned) ngx_pid << 16) ^ tp->sec ^ tp->msec);
 
     /*
      * disable deleting previous events for the listening sockets because