aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/afl-forkserver.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c
index 60c84cde..087f89ac 100644
--- a/src/afl-forkserver.c
+++ b/src/afl-forkserver.c
@@ -135,15 +135,24 @@ 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)
+ // this structure needs default so we initialize it if this was not done already
+
+ if (!fsrv->use_stdin) {
+
fsrv->use_stdin = 1;
+ fsrv->out_fd = -1;
+ fsrv->out_dir_fd = -1;
+ fsrv->dev_null_fd = -1;
+#ifndef HAVE_ARC4RANDOM
+ fsrv->dev_urandom_fd = -1;
+#endif
+ fsrv->exec_tmout = EXEC_TIMEOUT;
+ fsrv->mem_limit = MEM_LIMIT;
+ fsrv->child_pid = -1;
+ fsrv->out_dir_fd = -1;
+
+ }
+
list_append(&fsrv_list, fsrv);
}