diff options
-rw-r--r-- | include/common.h | 2 | ||||
-rw-r--r-- | src/afl-analyze.c | 2 | ||||
-rw-r--r-- | src/afl-common.c | 4 | ||||
-rw-r--r-- | src/afl-forkserver.c | 9 | ||||
-rw-r--r-- | src/afl-fuzz.c | 2 | ||||
-rw-r--r-- | src/afl-showmap.c | 4 | ||||
-rw-r--r-- | src/afl-tmin.c | 2 |
7 files changed, 17 insertions, 8 deletions
diff --git a/include/common.h b/include/common.h index fc5d3c38..5afc5ee3 100644 --- a/include/common.h +++ b/include/common.h @@ -31,7 +31,7 @@ #include "types.h" #include "stdbool.h" -void detect_file_args(char** argv, u8* prog_in, u8 use_stdin); +void detect_file_args(char** argv, u8* prog_in, u8 *use_stdin); void check_environment_vars(char** env); char** get_qemu_argv(u8* own_loc, u8** target_path_p, int argc, char** argv); diff --git a/src/afl-analyze.c b/src/afl-analyze.c index 30d71298..7d78ffc8 100644 --- a/src/afl-analyze.c +++ b/src/afl-analyze.c @@ -1009,7 +1009,7 @@ int main(int argc, char** argv, char** envp) { set_up_environment(); find_binary(argv[optind]); - detect_file_args(argv + optind, prog_in, use_stdin); + detect_file_args(argv + optind, prog_in, &use_stdin); if (qemu_mode) { diff --git a/src/afl-common.c b/src/afl-common.c index f175f604..67ff2a1b 100644 --- a/src/afl-common.c +++ b/src/afl-common.c @@ -38,7 +38,7 @@ extern u8 be_quiet; -void detect_file_args(char** argv, u8* prog_in, u8 use_stdin) { +void detect_file_args(char** argv, u8* prog_in, u8 *use_stdin) { u32 i = 0; #ifdef __GLIBC__ @@ -149,7 +149,7 @@ char **create_file_args(int argc, char** argv, u8* prog_in, u8 use_stdin) { if (!prog_in) FATAL("@@ syntax is not supported by this tool."); - use_stdin = 0; + *use_stdin = 0; if (prog_in[0] != 0) { // not afl-showmap special case diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c index f7b84248..60c84cde 100644 --- a/src/afl-forkserver.c +++ b/src/afl-forkserver.c @@ -135,6 +135,15 @@ void handle_timeout(int sig) { void afl_fsrv_init(afl_forkserver_t *fsrv) { + uint32_t i, j = 0; + + // this is the default and is != 0 so we need to set it if fsrv is still + // uninitialized + for (i = 0; i < sizeof(afl_forkserver_t) && j == 0; i++) + if (((char*)fsrv)[i] != 0) + j = 1; + if (j == 0) + fsrv->use_stdin = 1; list_append(&fsrv_list, fsrv); } diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index 35cf582c..4b6ced7a 100644 --- a/src/afl-fuzz.c +++ b/src/afl-fuzz.c @@ -942,7 +942,7 @@ int main(int argc, char** argv, char** envp) { } detect_file_args(argv + optind + 1, afl->fsrv.out_file, - afl->fsrv.use_stdin); + &afl->fsrv.use_stdin); break; } diff --git a/src/afl-showmap.c b/src/afl-showmap.c index 26f166a5..771fa733 100644 --- a/src/afl-showmap.c +++ b/src/afl-showmap.c @@ -899,11 +899,11 @@ int main(int argc, char** argv, char** envp) { if (in_dir) { if (at_file) PFATAL("Options -A and -i are mutually exclusive"); - detect_file_args(argv + optind, "", fsrv->use_stdin); + detect_file_args(argv + optind, "", &fsrv->use_stdin); } else { - detect_file_args(argv + optind, at_file, fsrv->use_stdin); + detect_file_args(argv + optind, at_file, &fsrv->use_stdin); } diff --git a/src/afl-tmin.c b/src/afl-tmin.c index df8d289f..5a29bec1 100644 --- a/src/afl-tmin.c +++ b/src/afl-tmin.c @@ -1274,7 +1274,7 @@ int main(int argc, char** argv, char** envp) { set_up_environment(fsrv); find_binary(fsrv, argv[optind]); - detect_file_args(argv + optind, fsrv->out_file, fsrv->use_stdin); + detect_file_args(argv + optind, fsrv->out_file, &fsrv->use_stdin); if (qemu_mode) { |