[PATCH 2 of 2] Win32: extended ngx_random range to 0x7fffffff

J Carter jordanc.carter at outlook.com
Sat Dec 9 07:46:10 UTC 2023


# HG changeset patch
# User J Carter <jordanc.carter at outlook.com>
# Date 1702101635 0
#      Sat Dec 09 06:00:35 2023 +0000
# Node ID 1a77698f82d2580aa8b8f62ce89b4dbb6d678c5d
# Parent  d9275e982a7188a1ea7855295ffa93362ea9830f
Win32: extended ngx_random range to 0x7fffffff

rand() is used on win32. RAND_MAX is implementation defined. win32's is
0x7fff.

Existing uses of ngx_random rely upon 0x7fffffff range provided by
posix implementations of random().

diff -r d9275e982a71 -r 1a77698f82d2 src/os/win32/ngx_win32_config.h
--- a/src/os/win32/ngx_win32_config.h	Sat Dec 09 05:09:07 2023 +0000
+++ b/src/os/win32/ngx_win32_config.h	Sat Dec 09 06:00:35 2023 +0000
@@ -280,7 +280,9 @@
 
 #define NGX_HAVE_GETADDRINFO         1
 
-#define ngx_random               rand
+#define ngx_random                                                             \
+    ((rand() << 16) | (rand() << 1) | (rand() >> 14))
+
 #define ngx_debug_init()
 
 


More information about the nginx-devel mailing list