diff options
author | Robert Swiecki <robert@swiecki.net> | 2017-11-09 14:13:21 +0100 |
---|---|---|
committer | Robert Swiecki <robert@swiecki.net> | 2017-11-09 14:13:21 +0100 |
commit | 3db34296f14eb620250c73c7d61c5a961548ff1a (patch) | |
tree | cc905d0736c750eda132cd10ddfa98cebb5ce584 /fuzz.c | |
parent | dcc19040395a4045ae53f180d0b2ccd913561a54 (diff) | |
download | honggfuzz-3db34296f14eb620250c73c7d61c5a961548ff1a.tar.gz |
fuzz: better way of going around the list of dynamic files
Diffstat (limited to 'fuzz.c')
-rw-r--r-- | fuzz.c | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -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); |