diff options
author | carpintero-de-c <175505615+carpintero-de-c@users.noreply.github.com> | 2024-07-14 03:55:58 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-14 00:25:58 +0200 |
commit | 7c380a6612f00e4a7ed02364dc2b3769e8edc8f8 (patch) | |
tree | fd78a050b4fa1372f6d023f10f3513a76e1ee769 /src | |
parent | 3f26818d973c4929857977b7cdfcf26cc0a84eb3 (diff) | |
download | afl++-7c380a6612f00e4a7ed02364dc2b3769e8edc8f8.tar.gz |
Replace gettimeofday with clock_gettime (#2159)
Diffstat (limited to 'src')
-rw-r--r-- | src/afl-as.c | 8 | ||||
-rw-r--r-- | src/afl-common.c | 15 | ||||
-rw-r--r-- | src/afl-fuzz.c | 7 |
3 files changed, 12 insertions, 18 deletions
diff --git a/src/afl-as.c b/src/afl-as.c index d4ddb94d..df487cbc 100644 --- a/src/afl-as.c +++ b/src/afl-as.c @@ -52,7 +52,6 @@ #include <fcntl.h> #include <sys/wait.h> -#include <sys/time.h> static u8 **as_params; /* Parameters passed to the real 'as' */ @@ -557,8 +556,7 @@ int main(int argc, char **argv) { int status; u8 *inst_ratio_str = getenv("AFL_INST_RATIO"); - struct timeval tv; - struct timezone tz; + struct timespec spec; clang_mode = !!getenv(CLANG_ENV_VAR); @@ -609,9 +607,9 @@ int main(int argc, char **argv) { } - gettimeofday(&tv, &tz); + clock_gettime(CLOCK_REALTIME, &spec); - rand_seed = tv.tv_sec ^ tv.tv_usec ^ getpid(); + rand_seed = spec.tv_sec ^ spec.tv_nsec ^ getpid(); // in fast systems where pids can repeat in the same seconds we need this for (i = 1; (s32)i < argc; i++) for (j = 0; j < strlen(argv[i]); j++) diff --git a/src/afl-common.c b/src/afl-common.c index efdb5d60..62432158 100644 --- a/src/afl-common.c +++ b/src/afl-common.c @@ -976,12 +976,11 @@ void read_bitmap(u8 *fname, u8 *map, size_t len) { inline u64 get_cur_time(void) { - struct timeval tv; - struct timezone tz; + struct timespec spec; - gettimeofday(&tv, &tz); + clock_gettime(CLOCK_REALTIME, &spec); - return (tv.tv_sec * 1000ULL) + (tv.tv_usec / 1000); + return (spec.tv_sec * 1000ULL) + (spec.tv_nsec / 1000000ULL); } @@ -989,19 +988,17 @@ inline u64 get_cur_time(void) { inline u64 get_cur_time_us(void) { - struct timeval tv; - struct timezone tz; + struct timespec spec; - gettimeofday(&tv, &tz); + clock_gettime(CLOCK_REALTIME, &spec); - return (tv.tv_sec * 1000000ULL) + tv.tv_usec; + return (spec.tv_sec * 1000000ULL) + (spec.tv_nsec / 1000ULL); } /* Describe integer. The buf should be at least 6 bytes to fit all ints we randomly see. Will return buf for convenience. */ - u8 *stringify_int(u8 *buf, size_t len, u64 val) { \ #define CHK_FORMAT(_divisor, _limit_mult, _fmt, _cast) \ diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index 9867eba3..0f84b79b 100644 --- a/src/afl-fuzz.c +++ b/src/afl-fuzz.c @@ -555,8 +555,7 @@ int main(int argc, char **argv_orig, char **envp) { char *frida_afl_preload = NULL; char **use_argv; - struct timeval tv; - struct timezone tz; + struct timespec spec; doc_path = access(DOC_PATH, F_OK) != 0 ? (u8 *)"docs" : (u8 *)DOC_PATH; @@ -603,8 +602,8 @@ int main(int argc, char **argv_orig, char **envp) { SAYF(cCYA "afl-fuzz" VERSION cRST " based on afl by Michal Zalewski and a large online community\n"); - gettimeofday(&tv, &tz); - rand_set_seed(afl, tv.tv_sec ^ tv.tv_usec ^ getpid()); + clock_gettime(CLOCK_REALTIME, &spec); + rand_set_seed(afl, spec.tv_sec ^ spec.tv_nsec ^ getpid()); afl->shmem_testcase_mode = 1; // we always try to perform shmem fuzzing |