authorgravatar for timonkruiper@gmail.comTimon Kruiper <timonkruiper@gmail.com> 2020-03-31 20:15:09+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-31 15:26:06-04:00
log9e019ed26bf2ab46040099dadaf778dec436bc4a
tree97fbc7f93c0ddb91e84eeba4fad0fb81f6077ada
parentc7a37967340da7e21281fca09e82f8fffb3f15d8

Fix possible unaligned ptr from `getauxval`

This caused SIGILL on armv7a-linux

1 files changed, 4 insertions(+), 1 deletions(-)

src/os.cpp+4-1
......@@ -1456,7 +1456,10 @@ static void init_rand() {
14561456 memcpy(&seed, bytes, sizeof(unsigned));
14571457 srand(seed);
14581458#elif defined(ZIG_OS_LINUX)
1459 srand(*((unsigned*)getauxval(AT_RANDOM)));
1459 unsigned char *ptr_random = (unsigned char*)getauxval(AT_RANDOM);
1460 unsigned seed;
1461 memcpy(&seed, ptr_random, sizeof(seed));
1462 srand(seed);
14601463#else
14611464 int fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC);
14621465 if (fd == -1) {