summaryrefslogtreecommitdiff
path: root/fuzz.c
diff options
context:
space:
mode:
authorRobert Swiecki <robert@swiecki.net>2017-11-09 14:13:21 +0100
committerRobert Swiecki <robert@swiecki.net>2017-11-09 14:13:21 +0100
commit3db34296f14eb620250c73c7d61c5a961548ff1a (patch)
treecc905d0736c750eda132cd10ddfa98cebb5ce584 /fuzz.c
parentdcc19040395a4045ae53f180d0b2ccd913561a54 (diff)
downloadhonggfuzz-3db34296f14eb620250c73c7d61c5a961548ff1a.tar.gz
fuzz: better way of going around the list of dynamic files
Diffstat (limited to 'fuzz.c')
-rw-r--r--fuzz.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/fuzz.c b/fuzz.c
index aa54642e..3c67fd97 100644
--- a/fuzz.c
+++ b/fuzz.c
@@ -68,7 +68,6 @@ static void fuzz_getFileName(honggfuzz_t* hfuzz, fuzzer_t* fuzzer)
static bool fuzz_prepareFileDynamically(honggfuzz_t* hfuzz, fuzzer_t* fuzzer)
{
fuzzer->origFileName = "[DYNAMIC]";
- struct dynfile_t* dynfile;
{
MX_SCOPED_RWLOCK_READ(&hfuzz->dynfileq_mutex);
@@ -79,16 +78,19 @@ static bool fuzz_prepareFileDynamically(honggfuzz_t* hfuzz, fuzzer_t* fuzzer)
"coverage and/or CPU counters");
}
- if (fuzzer->dynfileqCurrent == NULL
- || fuzzer->dynfileqCurrent == TAILQ_LAST(&hfuzz->dynfileq, dyns_t)) {
+ if (fuzzer->dynfileqCurrent == NULL) {
fuzzer->dynfileqCurrent = TAILQ_FIRST(&hfuzz->dynfileq);
+ } else {
+ if (fuzzer->dynfileqCurrent == TAILQ_LAST(&hfuzz->dynfileq, dyns_t)) {
+ fuzzer->dynfileqCurrent = TAILQ_FIRST(&hfuzz->dynfileq);
+ } else {
+ fuzzer->dynfileqCurrent = TAILQ_NEXT(fuzzer->dynfileqCurrent, pointers);
+ }
}
- dynfile = fuzzer->dynfileqCurrent;
- fuzzer->dynfileqCurrent = TAILQ_NEXT(fuzzer->dynfileqCurrent, pointers);
}
- memcpy(fuzzer->dynamicFile, dynfile->data, dynfile->size);
- fuzzer->dynamicFileSz = dynfile->size;
+ memcpy(fuzzer->dynamicFile, fuzzer->dynfileqCurrent->data, fuzzer->dynfileqCurrent->size);
+ fuzzer->dynamicFileSz = fuzzer->dynfileqCurrent->size;
mangle_mangleContent(hfuzz, fuzzer);