fix error handling in fauxserver
MODIFY
src/afl-forkserver.c
src/afl-forkserver.c
@@ -220,15 +220,7 @@ static void afl_fauxsrv_execv(afl_forkserver_t *fsrv, char **argv) {
}
void (*old_sigchld_handler)(int) = signal(SIGCHLD, SIG_DFL);
-#if 0
- WARNF("targetpath=%s", fsrv->target_path);
- if (argv) {
- for (char *p = argv[0]; p; ++p) {
- WARNF(" %s", p);
- }
- }
- WARNF("\n");
-#endif
+
while (1) {
uint32_t was_killed;
@@ -1146,7 +1138,7 @@ fsrv_run_result_t afl_fsrv_run_target(afl_forkserver_t *fsrv, u32 timeout,
}
// Fauxserver should handle this now.
- // if (tb4 == EXEC_FAIL_SIG) return FSRV_RUN_ERROR;
+ if (*(u32 *)fsrv->trace_bits == EXEC_FAIL_SIG) return FSRV_RUN_ERROR;
return FSRV_RUN_OK;

MODIFY
src/afl-fuzz.c
src/afl-fuzz.c
@@ -442,7 +442,7 @@ int main(int argc, char **argv_orig, char **envp) {
if (optarg && *optarg == '-') { FATAL("argument for -M started with a dash '-', which is used for options"); }
afl->sync_id = ck_strdup(optarg);
- afl->skip_deterministic = 0; // force determinsitic fuzzing
+ afl->skip_deterministic = 0; // force deterministic fuzzing
afl->old_seed_selection = 1; // force old queue walking seed selection
if ((c = strchr(afl->sync_id, ':'))) {
@@ -922,7 +922,7 @@ int main(int argc, char **argv_orig, char **envp) {
afl->power_name = power_names[afl->schedule];
- if (!afl->sync_id) {
+ if (!afl->non_instrumented_mode && !afl->sync_id) {
auto_sync = 1;
afl->sync_id = ck_strdup("default");

fix error handling in fauxserver