diff options
author | hexcoder- <heiko@hexco.de> | 2020-02-17 22:29:17 +0100 |
---|---|---|
committer | hexcoder- <heiko@hexco.de> | 2020-02-17 22:29:17 +0100 |
commit | 8330e0e8baa9debdaabc7a09278b938c325b18a9 (patch) | |
tree | c70d9c0c7b8490695a852a8aba98dc120a9073da /src | |
parent | df55fb1f14050a5223229d5df9d0a76ba7b23521 (diff) | |
download | afl++-8330e0e8baa9debdaabc7a09278b938c325b18a9.tar.gz |
fix issue #198 AFL_TMPDIR is ignored for file .cur_input
Diffstat (limited to 'src')
-rw-r--r-- | src/afl-fuzz-init.c | 8 | ||||
-rw-r--r-- | src/afl-fuzz.c | 16 |
2 files changed, 15 insertions, 9 deletions
diff --git a/src/afl-fuzz-init.c b/src/afl-fuzz-init.c index bf2f63c9..bafb1d63 100644 --- a/src/afl-fuzz-init.c +++ b/src/afl-fuzz-init.c @@ -1224,11 +1224,11 @@ void maybe_delete_out_dir(void) { if (file_extension) { - fn = alloc_printf("%s/.cur_input.%s", out_dir, file_extension); + fn = alloc_printf("%s/.cur_input.%s", tmp_dir, file_extension); } else { - fn = alloc_printf("%s/.cur_input", out_dir); + fn = alloc_printf("%s/.cur_input", tmp_dir); } @@ -1440,11 +1440,11 @@ void setup_stdio_file(void) { u8* fn; if (file_extension) { - fn = alloc_printf("%s/.cur_input.%s", out_dir, file_extension); + fn = alloc_printf("%s/.cur_input.%s", tmp_dir, file_extension); } else { - fn = alloc_printf("%s/.cur_input", out_dir); + fn = alloc_printf("%s/.cur_input", tmp_dir); } diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index 0c73ca2c..0609061c 100644 --- a/src/afl-fuzz.c +++ b/src/afl-fuzz.c @@ -655,11 +655,17 @@ int main(int argc, char** argv, char** envp) { if ((tmp_dir = getenv("AFL_TMPDIR")) != NULL) { - char tmpfile[strlen(tmp_dir + 16)]; - sprintf(tmpfile, "%s/%s", tmp_dir, ".cur_input"); + char tmpfile[file_extension + ? strlen(tmp_dir) + 1 + 10 + 1 + strlen(file_extension) + 1 + : strlen(tmp_dir) + 1 + 10 + 1]; + if (file_extension) { + sprintf(tmpfile, "%s/.cur_input.%s", tmp_dir, file_extension); + } else { + sprintf(tmpfile, "%s/.cur_input", tmp_dir); + } if (access(tmpfile, F_OK) != -1) // there is still a race condition here, but well ... - FATAL("TMP_DIR already has an existing temporary input file: %s", + FATAL("AFL_TMPDIR already has an existing temporary input file: %s", tmpfile); } else @@ -854,11 +860,11 @@ int main(int argc, char** argv, char** envp) { if (file_extension) { - out_file = alloc_printf("%s/.cur_input.%s", out_dir, file_extension); + out_file = alloc_printf("%s/.cur_input.%s", tmp_dir, file_extension); } else { - out_file = alloc_printf("%s/.cur_input", out_dir); + out_file = alloc_printf("%s/.cur_input", tmp_dir); } |