]> git.kaiwu.me - nginx.git/commitdiff
Added per-process random seeding (ticket #456).
authorMaxim Dounin <mdounin@mdounin.ru>
Fri, 3 Jan 2014 23:32:06 +0000 (03:32 +0400)
committerMaxim Dounin <mdounin@mdounin.ru>
Fri, 3 Jan 2014 23:32:06 +0000 (03:32 +0400)
src/os/unix/ngx_process_cycle.c
src/os/win32/ngx_win32_init.c

index 9d23a73d05e853b18a5c128d62d64e7133c7acff..499039a7ea8a40a0f1fadb1ff53e882063d3b533 100644 (file)
@@ -959,6 +959,8 @@ ngx_worker_process_init(ngx_cycle_t *cycle, ngx_int_t worker)
                       "sigprocmask() failed");
     }
 
+    srandom((ngx_pid << 16) ^ ngx_time());
+
     /*
      * disable deleting previous events for the listening sockets because
      * in the worker processes there are no events at all at this point
index d2505ced47197921f6bbb3274f1bf94eed2c0f71..d3cc376030831306389fd017143706e5fc272f84 100644 (file)
@@ -228,7 +228,7 @@ ngx_os_init(ngx_log_t *log)
         ngx_sprintf((u_char *) ngx_unique, "%P%Z", ngx_pid);
     }
 
-    srand((unsigned) ngx_time());
+    srand((ngx_pid << 16) ^ (unsigned) ngx_time());
 
     return NGX_OK;
 }