From c0134ded9fce48f36465cb1a1adbcc52e32f8c65 Mon Sep 17 00:00:00 2001 From: J Carter Date: Sat, 9 Dec 2023 08:38:14 +0000 Subject: [PATCH] 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(). --- src/os/win32/ngx_win32_config.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h index 406003a78..704561355 100644 --- a/src/os/win32/ngx_win32_config.h +++ b/src/os/win32/ngx_win32_config.h @@ -280,7 +280,11 @@ typedef int sig_atomic_t; #define NGX_HAVE_GETADDRINFO 1 -#define ngx_random rand +#define ngx_random() \ + ((long) (0x7fffffff & ( ((uint32_t) rand() << 16) \ + ^ ((uint32_t) rand() << 8) \ + ^ ((uint32_t) rand()) ))) + #define ngx_debug_init()