aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergio Paganoni <sergio.paganoni@gmail.com>2020-08-24 21:18:51 +0200
committerGitHub <noreply@github.com>2020-08-24 21:18:51 +0200
commit1efc6e59b7cd2a3623ad3d75622e8bf107b3dc98 (patch)
tree6d844328f0a03b820e98bb41ecf54443e2d8e991
parent19eddbb0c76406db6d790681ef519c4d91e8814e (diff)
downloadafl++-1efc6e59b7cd2a3623ad3d75622e8bf107b3dc98.tar.gz
Added out_file value when using stdio (#524)
-rw-r--r--src/afl-forkserver.c4
-rw-r--r--src/afl-fuzz-init.c13
2 files changed, 7 insertions, 10 deletions
diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c
index 72f3dc3b..93203cb2 100644
--- a/src/afl-forkserver.c
+++ b/src/afl-forkserver.c
@@ -941,7 +941,7 @@ void afl_fsrv_write_to_testcase(afl_forkserver_t *fsrv, u8 *buf, size_t len) {
s32 fd = fsrv->out_fd;
- if (fsrv->out_file) {
+ if (!fsrv->use_stdin) {
if (fsrv->no_unlink) {
@@ -964,7 +964,7 @@ void afl_fsrv_write_to_testcase(afl_forkserver_t *fsrv, u8 *buf, size_t len) {
ck_write(fd, buf, len, fsrv->out_file);
- if (!fsrv->out_file) {
+ if (fsrv->use_stdin) {
if (ftruncate(fd, len)) { PFATAL("ftruncate() failed"); }
lseek(fd, 0, SEEK_SET);
diff --git a/src/afl-fuzz-init.c b/src/afl-fuzz-init.c
index 350a8599..7b7ba006 100644
--- a/src/afl-fuzz-init.c
+++ b/src/afl-fuzz-init.c
@@ -1841,24 +1841,21 @@ void setup_cmdline_file(afl_state_t *afl, char **argv) {
void setup_stdio_file(afl_state_t *afl) {
- u8 *fn;
if (afl->file_extension) {
- fn = alloc_printf("%s/.cur_input.%s", afl->tmp_dir, afl->file_extension);
+ afl->fsrv.out_file = alloc_printf("%s/.cur_input.%s", afl->tmp_dir, afl->file_extension);
} else {
- fn = alloc_printf("%s/.cur_input", afl->tmp_dir);
+ afl->fsrv.out_file = alloc_printf("%s/.cur_input", afl->tmp_dir);
}
- unlink(fn); /* Ignore errors */
+ unlink(afl->fsrv.out_file); /* Ignore errors */
- afl->fsrv.out_fd = open(fn, O_RDWR | O_CREAT | O_EXCL, 0600);
+ afl->fsrv.out_fd = open(afl->fsrv.out_file, O_RDWR | O_CREAT | O_EXCL, 0600);
- if (afl->fsrv.out_fd < 0) { PFATAL("Unable to create '%s'", fn); }
-
- ck_free(fn);
+ if (afl->fsrv.out_fd < 0) { PFATAL("Unable to create '%s'", afl->fsrv.out_file); }
}