Commit 9e019ed26b

Timon Kruiper <timonkruiper@gmail.com>
2020-03-31 20:15:09
Fix possible unaligned ptr from `getauxval`
This caused SIGILL on armv7a-linux
1 parent c7a3796
Changed files (1)
src
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) {