about summary refs log tree commit diff
path: root/src/afl-forkserver.c
diff options
context:
space:
mode:
authorSean McBride <sean@rogue-research.com>2024-02-22 10:47:53 -0500
committerSean McBride <sean@rogue-research.com>2024-02-26 14:07:49 -0500
commitb2b887d04decdcdadf702c585bb1992a0a821bf1 (patch)
tree9fcdee4357b3b9adcbc5c394b3a668ca423840fb /src/afl-forkserver.c
parent340d6aa97cd8fa18e8c7650ac9067e1b2688e8bb (diff)
downloadafl++-b2b887d04decdcdadf702c585bb1992a0a821bf1.tar.gz
Issue #2007: add filename extension to /crashes files
This is very helpful for code that inpects a file name extension when determining what code to run.

It's also useful for applications that constrain the user to choose files by extension.
Diffstat (limited to 'src/afl-forkserver.c')
-rw-r--r--src/afl-forkserver.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c
index 508b5fa7..0d7c19c6 100644
--- a/src/afl-forkserver.c
+++ b/src/afl-forkserver.c
@@ -2003,7 +2003,7 @@ afl_fsrv_run_target(afl_forkserver_t *fsrv, u32 timeout,
     if (unlikely(fsrv->persistent_record)) {
 
       retval = FSRV_RUN_TMOUT;
-      persistent_out_fmt = "%s/hangs/RECORD:%06u,cnt:%06u";
+      persistent_out_fmt = "%s/hangs/RECORD:%06u,cnt:%06u%s%s";
       goto store_persistent_record;
 
     }
@@ -2039,7 +2039,7 @@ afl_fsrv_run_target(afl_forkserver_t *fsrv, u32 timeout,
     if (unlikely(fsrv->persistent_record)) {
 
       retval = FSRV_RUN_CRASH;
-      persistent_out_fmt = "%s/crashes/RECORD:%06u,cnt:%06u";
+      persistent_out_fmt = "%s/crashes/RECORD:%06u,cnt:%06u%s%s";
       goto store_persistent_record;
 
     }
@@ -2066,7 +2066,9 @@ store_persistent_record: {
     if (likely(len && data)) {
 
       snprintf(fn, sizeof(fn), persistent_out_fmt, fsrv->persistent_record_dir,
-               fsrv->persistent_record_cnt, writecnt++);
+               fsrv->persistent_record_cnt, writecnt++,
+               afl->file_extension ? "." : "",
+               afl->file_extension ? (const char*)afl->file_extension : "");
       int fd = open(fn, O_CREAT | O_TRUNC | O_WRONLY, 0644);
       if (fd >= 0) {