| Index: src/platform-win32.cc
|
| ===================================================================
|
| --- src/platform-win32.cc (revision 5894)
|
| +++ src/platform-win32.cc (working copy)
|
| @@ -54,11 +54,6 @@
|
| #define _WIN32_WINNT 0x501
|
| #endif
|
|
|
| -// Required before stdlib.h inclusion for cryptographically strong rand_s.
|
| -#ifndef _CRT_RAND_S
|
| -#define _CRT_RAND_S
|
| -#endif // _CRT_RAND_S
|
| -
|
| #include <windows.h>
|
|
|
| #include <time.h> // For LocalOffset() implementation.
|
| @@ -589,8 +584,11 @@
|
|
|
| void OS::Setup() {
|
| // Seed the random number generator.
|
| - unsigned int seed;
|
| - CHECK_EQ(rand_s(&seed), 0);
|
| + // Convert the current time to a 64-bit integer first, before converting it
|
| + // to an unsigned. Going directly can cause an overflow and the seed to be
|
| + // set to all ones. The seed will be identical for different instances that
|
| + // call this setup code within the same millisecond.
|
| + uint64_t seed = static_cast<uint64_t>(TimeCurrentMillis());
|
| srand(static_cast<unsigned int>(seed));
|
| }
|
|
|
|
|