diff options
Diffstat (limited to 'instrumentation/afl-llvm-pass.so.cc')
-rw-r--r-- | instrumentation/afl-llvm-pass.so.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/instrumentation/afl-llvm-pass.so.cc b/instrumentation/afl-llvm-pass.so.cc index 75b8532b..fb5b856c 100644 --- a/instrumentation/afl-llvm-pass.so.cc +++ b/instrumentation/afl-llvm-pass.so.cc @@ -32,12 +32,12 @@ #include "debug.h" #include <stdio.h> #include <stdlib.h> +#include <time.h> #include <unistd.h> #include <list> #include <string> #include <fstream> -#include <sys/time.h> #include "llvm/Config/llvm-config.h" #if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR < 5 @@ -211,14 +211,13 @@ bool AFLCoverage::runOnModule(Module &M) { IntegerType *IntLocTy = IntegerType::getIntNTy(C, sizeof(PREV_LOC_T) * CHAR_BIT); #endif - struct timeval tv; - struct timezone tz; + struct timespec spec; u32 rand_seed; unsigned int cur_loc = 0; /* Setup random() so we get Actually Random(TM) outputs from AFL_R() */ - gettimeofday(&tv, &tz); - rand_seed = tv.tv_sec ^ tv.tv_usec ^ getpid(); + clock_gettime(CLOCK_REALTIME, &spec); + rand_seed = spec.tv_sec ^ spec.tv_nsec ^ getpid(); AFL_SR(rand_seed); /* Show a banner */ |