aboutsummaryrefslogtreecommitdiff
path: root/src/os.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/os.cpp')
-rw-r--r--src/os.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/os.cpp b/src/os.cpp
index a1deb0f611..505063f827 100644
--- a/src/os.cpp
+++ b/src/os.cpp
@@ -1456,7 +1456,10 @@ static void init_rand() {
memcpy(&seed, bytes, sizeof(unsigned));
srand(seed);
#elif defined(ZIG_OS_LINUX)
- srand(*((unsigned*)getauxval(AT_RANDOM)));
+ unsigned char *ptr_random = (unsigned char*)getauxval(AT_RANDOM);
+ unsigned seed;
+ memcpy(&seed, ptr_random, sizeof(seed));
+ srand(seed);
#else
int fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC);
if (fd == -1) {