diff options
author | David Carlier <devnexen@gmail.com> | 2019-12-01 06:15:19 +0000 |
---|---|---|
committer | David Carlier <devnexen@gmail.com> | 2019-12-01 06:16:24 +0000 |
commit | 8e85b9cbf36ffc63fd740d360d02e8ba9fc69cab (patch) | |
tree | 59be7ec1f89db0cedecb4fbfd955962aa78b050a | |
parent | d4da9b805afff319da98a40a688b8afa3b328cec (diff) | |
download | afl++-8e85b9cbf36ffc63fd740d360d02e8ba9fc69cab.tar.gz |
getrandom available only from GLIBC 2.25
-rw-r--r-- | libdislocator/libdislocator.so.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libdislocator/libdislocator.so.c b/libdislocator/libdislocator.so.c index 0efe679e..9a2ab004 100644 --- a/libdislocator/libdislocator.so.c +++ b/libdislocator/libdislocator.so.c @@ -31,10 +31,15 @@ #endif #ifdef __linux__ +#if __GLIBC__ >= 2 || __GLIBC_MINOR >= 25 #define _GNU_SOURCE #include <unistd.h> #include <sys/syscall.h> #define arc4random_buf(p, l) do { ssize_t rd = syscall(__NR_getrandom, p, l, 0); if (rd != l) DEBUGF("getrandom failed"); } while(0) +#else +#include <time.h> +#define arc4random_buf(p, l) do { srand(time(NULL)); u32 i; u8 *ptr = (u8 *)p; for(i = 0; i < l; i++) ptr[i] = rand() % INT_MAX; } while(0) +#endif #endif #include "config.h" |