summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Swiecki <robert@swiecki.net>2017-11-09 01:30:54 +0100
committerRobert Swiecki <robert@swiecki.net>2017-11-09 01:30:54 +0100
commitb0e261a0840d94855d3986bac47319108cd12f67 (patch)
tree0196e1b330664ad165dedead2dc610ecd6638823
parent711afa826be527164a68e3221b79b95548efd4a3 (diff)
downloadhonggfuzz-b0e261a0840d94855d3986bac47319108cd12f67.tar.gz
fuzz: use TAILQ, as CIRCLEQ is not present under all supported OSes
-rw-r--r--cmdline.c2
-rw-r--r--fuzz.c11
-rw-r--r--honggfuzz.h4
3 files changed, 8 insertions, 9 deletions
diff --git a/cmdline.c b/cmdline.c
index d33bb6cb..e910f2b8 100644
--- a/cmdline.c
+++ b/cmdline.c
@@ -250,7 +250,7 @@ bool cmdlineParse(int argc, char* argv[], honggfuzz_t* hfuzz)
},
};
- CIRCLEQ_INIT(&hfuzz->dynfileq);
+ TAILQ_INIT(&hfuzz->dynfileq);
TAILQ_INIT(&hfuzz->dictq);
// clang-format off
diff --git a/fuzz.c b/fuzz.c
index 90599504..aa54642e 100644
--- a/fuzz.c
+++ b/fuzz.c
@@ -79,13 +79,12 @@ static bool fuzz_prepareFileDynamically(honggfuzz_t* hfuzz, fuzzer_t* fuzzer)
"coverage and/or CPU counters");
}
- if (fuzzer->dynfileqCurrent == NULL) {
- fuzzer->dynfileqCurrent = CIRCLEQ_FIRST(&hfuzz->dynfileq);
+ if (fuzzer->dynfileqCurrent == NULL
+ || fuzzer->dynfileqCurrent == TAILQ_LAST(&hfuzz->dynfileq, dyns_t)) {
+ fuzzer->dynfileqCurrent = TAILQ_FIRST(&hfuzz->dynfileq);
}
-
dynfile = fuzzer->dynfileqCurrent;
- fuzzer->dynfileqCurrent
- = CIRCLEQ_LOOP_NEXT(&hfuzz->dynfileq, fuzzer->dynfileqCurrent, pointers);
+ fuzzer->dynfileqCurrent = TAILQ_NEXT(fuzzer->dynfileqCurrent, pointers);
}
memcpy(fuzzer->dynamicFile, dynfile->data, dynfile->size);
@@ -360,7 +359,7 @@ static void fuzz_addFileToFileQ(honggfuzz_t* hfuzz, fuzzer_t* fuzzer)
memcpy(dynfile->data, fuzzer->dynamicFile, fuzzer->dynamicFileSz);
MX_SCOPED_RWLOCK_WRITE(&hfuzz->dynfileq_mutex);
- CIRCLEQ_INSERT_TAIL(&hfuzz->dynfileq, dynfile, pointers);
+ TAILQ_INSERT_TAIL(&hfuzz->dynfileq, dynfile, pointers);
hfuzz->dynfileqCnt++;
/* No need to add new coverage if we are supposed to append new coverage-inducing inputs only */
diff --git a/honggfuzz.h b/honggfuzz.h
index 2b9d6735..eb63b258 100644
--- a/honggfuzz.h
+++ b/honggfuzz.h
@@ -145,7 +145,7 @@ typedef enum {
struct dynfile_t {
uint8_t* data;
size_t size;
- CIRCLEQ_ENTRY(dynfile_t)
+ TAILQ_ENTRY(dynfile_t)
pointers;
};
@@ -219,7 +219,7 @@ typedef struct {
int bbFd;
size_t dynfileqCnt;
- CIRCLEQ_HEAD(dyns_t, dynfile_t) dynfileq;
+ TAILQ_HEAD(dyns_t, dynfile_t) dynfileq;
pthread_rwlock_t dynfileq_mutex;
pthread_mutex_t feedback_mutex;