Remove get_cut_time function from multiple places and refactor code
MODIFY
include/afl-fuzz.h
include/afl-fuzz.h
@@ -461,6 +461,7 @@ extern s32 cmplog_child_pid, cmplog_forksrv_pid;
/* Custom mutators */
struct custom_mutator {
+
const char* name;
void* dh;
@@ -485,8 +486,8 @@ struct custom_mutator {
* @param[in] buf_size Size of the input/output data
* @param[in] add_buf Buffer containing the additional test case
* @param[in] add_buf_size Size of the additional test case
- * @param[in] max_size Maximum size of the mutated output. The mutation must not
- * produce data larger than max_size.
+ * @param[in] max_size Maximum size of the mutated output. The mutation must
+ * not produce data larger than max_size.
* @return Size of the mutated output.
*/
size_t (*afl_custom_fuzz)(u8** buf, size_t buf_size, u8* add_buf,
@@ -574,7 +575,8 @@ struct custom_mutator {
* not produce data larger than max_size.
* @return Size of the mutated output.
*/
- size_t (*afl_custom_havoc_mutation)(u8** buf, size_t buf_size, size_t max_size);
+ size_t (*afl_custom_havoc_mutation)(u8** buf, size_t buf_size,
+ size_t max_size);
/**
* Return the probability (in percentage) that afl_custom_havoc_mutation
@@ -609,6 +611,7 @@ struct custom_mutator {
*/
void (*afl_custom_queue_new_entry)(const u8* filename_new_queue,
const u8* filename_orig_queue);
+
};
extern struct custom_mutator* mutator;
@@ -855,32 +858,6 @@ static u64 next_p2(u64 val) {
}
-/* Get unix time in milliseconds */
-
-static u64 get_cur_time(void) {
-
- struct timeval tv;
- struct timezone tz;
-
- gettimeofday(&tv, &tz);
-
- return (tv.tv_sec * 1000ULL) + (tv.tv_usec / 1000);
-
-}
-
-/* Get unix time in microseconds */
-
-static u64 get_cur_time_us(void) {
-
- struct timeval tv;
- struct timezone tz;
-
- gettimeofday(&tv, &tz);
-
- return (tv.tv_sec * 1000000ULL) + tv.tv_usec;
-
-}
-
#ifdef _AFL_DOCUMENT_MUTATIONS
extern u8 do_document;
extern u32 document_counter;

MODIFY
include/common.h
include/common.h
#ifndef __AFLCOMMON_H
#define __AFLCOMMON_H
+
+#include <sys/time.h>
#include "types.h"
extern u8* target_path; /* Path to target binary */
@@ -37,3 +39,29 @@ char** get_wine_argv(u8* own_loc, char** argv, int argc);
char* get_afl_env(char* env);
#endif
+/* Get unix time in milliseconds */
+
+static u64 get_cur_time(void) {
+
+ struct timeval tv;
+ struct timezone tz;
+
+ gettimeofday(&tv, &tz);
+
+ return (tv.tv_sec * 1000ULL) + (tv.tv_usec / 1000);
+
+}
+
+/* Get unix time in microseconds */
+
+static u64 get_cur_time_us(void) {
+
+ struct timeval tv;
+ struct timezone tz;
+
+ gettimeofday(&tv, &tz);
+
+ return (tv.tv_sec * 1000000ULL) + tv.tv_usec;
+
+}
+

MODIFY
src/afl-gotcpu.c
src/afl-gotcpu.c
#include "types.h"
#include "debug.h"
+#include "common.h"
#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
defined(__APPLE__) || defined(__DragonFly__)
#endif
#endif /* __linux__ || __FreeBSD__ || __NetBSD__ || __APPLE__ */
-/* Get unix time in microseconds. */
-
-static u64 get_cur_time_us(void) {
-
- struct timeval tv;
- struct timezone tz;
-
- gettimeofday(&tv, &tz);
-
- return (tv.tv_sec * 1000000ULL) + tv.tv_usec;
-
-}
-
/* Get CPU usage in microseconds. */
static u64 get_cpu_usage_us(void) {

Remove get_cut_time function from multiple places and refactor code