summaryrefslogtreecommitdiff
path: root/fuzz.c
diff options
context:
space:
mode:
Diffstat (limited to 'fuzz.c')
-rw-r--r--fuzz.c46
1 files changed, 12 insertions, 34 deletions
diff --git a/fuzz.c b/fuzz.c
index 950c556f..564357a4 100644
--- a/fuzz.c
+++ b/fuzz.c
@@ -152,9 +152,6 @@ static void fuzz_setDynamicMainState(run_t* run) {
return;
}
- LOG_I("Entering phase 2/3: Switching to Dynamic Main (Feedback Driven Mode)");
- ATOMIC_SET(run->global->feedback.state, _HF_STATE_DYNAMIC_SWITCH_TO_MAIN);
-
for (;;) {
/* Check if all threads have already reported in for changing state */
if (ATOMIC_GET(cnt) == run->global->threads.threadsMax) {
@@ -163,10 +160,10 @@ static void fuzz_setDynamicMainState(run_t* run) {
if (fuzz_isTerminating()) {
return;
}
- util_sleepForMSec(10); /* Check every 10ms */
+ usleep(1000 * 10); /* Check every 10ms */
}
- LOG_I("Entering phase 3/3: Dynamic Main (Feedback Driven Mode)");
+ LOG_I("Entering phase 2/2: Dynamic Main");
snprintf(run->origFileName, sizeof(run->origFileName), "[DYNAMIC]");
ATOMIC_SET(run->global->feedback.state, _HF_STATE_DYNAMIC_MAIN);
@@ -310,16 +307,13 @@ static bool fuzz_runVerifier(run_t* run) {
}
static bool fuzz_fetchInput(run_t* run) {
- {
- fuzzState_t st = fuzz_getState(run->global);
- if (st == _HF_STATE_DYNAMIC_DRY_RUN || st == _HF_STATE_DYNAMIC_SWITCH_TO_MAIN) {
- run->mutationsPerRun = 0U;
- if (input_prepareStaticFile(run, /* rewind= */ false, true)) {
- return true;
- }
- fuzz_setDynamicMainState(run);
- run->mutationsPerRun = run->global->mutate.mutationsPerRun;
+ if (fuzz_getState(run->global) == _HF_STATE_DYNAMIC_DRY_RUN) {
+ run->mutationsPerRun = 0U;
+ if (input_prepareStaticFile(run, /* rewind= */ false)) {
+ return true;
}
+ fuzz_setDynamicMainState(run);
+ run->mutationsPerRun = run->global->mutate.mutationsPerRun;
}
if (fuzz_getState(run->global) == _HF_STATE_DYNAMIC_MAIN) {
@@ -328,12 +322,7 @@ static bool fuzz_fetchInput(run_t* run) {
LOG_E("input_prepareFileExternally() failed");
return false;
}
- } else if (run->global->exe.feedbackMutateCommand) {
- if (!input_prepareDynamicInput(run, false)) {
- LOG_E("input_prepareFileDynamically() failed");
- return false;
- }
- } else if (!input_prepareDynamicInput(run, true)) {
+ } else if (!input_prepareDynamicInput(run)) {
LOG_E("input_prepareFileDynamically() failed");
return false;
}
@@ -345,12 +334,7 @@ static bool fuzz_fetchInput(run_t* run) {
LOG_E("input_prepareFileExternally() failed");
return false;
}
- } else if (run->global->exe.feedbackMutateCommand) {
- if (!input_prepareStaticFile(run, true, false)) {
- LOG_E("input_prepareFileDynamically() failed");
- return false;
- }
- } else if (!input_prepareStaticFile(run, true /* rewind */, true)) {
+ } else if (!input_prepareStaticFile(run, true /* rewind */)) {
LOG_E("input_prepareFile() failed");
return false;
}
@@ -361,11 +345,6 @@ static bool fuzz_fetchInput(run_t* run) {
return false;
}
- if (run->global->exe.feedbackMutateCommand && !input_feedbackMutateFile(run)) {
- LOG_E("input_feedbackMutateFile() failed");
- return false;
- }
-
return true;
}
@@ -548,7 +527,7 @@ void fuzz_threadsStart(honggfuzz_t* hfuzz) {
LOG_I("Entering phase - Feedback Driven Mode (SocketFuzzer)");
hfuzz->feedback.state = _HF_STATE_DYNAMIC_MAIN;
} else if (hfuzz->feedback.dynFileMethod != _HF_DYNFILE_NONE) {
- LOG_I("Entering phase 1/3: Dry Run");
+ LOG_I("Entering phase 1/2: Dry Run");
hfuzz->feedback.state = _HF_STATE_DYNAMIC_DRY_RUN;
} else {
LOG_I("Entering phase: Static");
@@ -556,8 +535,7 @@ void fuzz_threadsStart(honggfuzz_t* hfuzz) {
}
for (size_t i = 0; i < hfuzz->threads.threadsMax; i++) {
- if (!subproc_runThread(
- hfuzz, &hfuzz->threads.threads[i], fuzz_threadNew, /* joinable= */ true)) {
+ if (!subproc_runThread(hfuzz, &hfuzz->threads.threads[i], fuzz_threadNew)) {
PLOG_F("Couldn't run a thread #%zu", i);
}
}