diff options
author | van Hauser <vh@thc.org> | 2024-06-19 14:09:06 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-19 14:09:06 +0200 |
commit | 2276a2f5c35d574de1477d3a014009eca7dcfbd6 (patch) | |
tree | 1bda28182c1dbf1f9570da2926f6f62be117f154 /src/afl-fuzz.c | |
parent | b8568034f0c120ab8500c03ed4982d641eaa88fb (diff) | |
parent | 8fcca6fb410a6ece1a4cd2eb8a2cdeed4d4d9865 (diff) | |
download | afl++-2276a2f5c35d574de1477d3a014009eca7dcfbd6.tar.gz |
Merge pull request #2129 from choller/persist-code-cov
Collect persistent coverage data and dump it at the end of the run
Diffstat (limited to 'src/afl-fuzz.c')
-rw-r--r-- | src/afl-fuzz.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index a09a53ec..0209e74f 100644 --- a/src/afl-fuzz.c +++ b/src/afl-fuzz.c @@ -3130,6 +3130,28 @@ stop_fuzzing: write_bitmap(afl); save_auto(afl); + #ifdef __AFL_CODE_COVERAGE + if (afl->fsrv.persistent_trace_bits) { + + char cfn[4096]; + snprintf(cfn, sizeof(cfn), "%s/covmap.dump", afl->out_dir); + + FILE *cov_fd; + if ((cov_fd = fopen(cfn, "w")) == NULL) { + + PFATAL("could not create '%s'", cfn); + + } + + // Write the real map size, as the map size must exactly match the pointer + // map in length. + fwrite(afl->fsrv.persistent_trace_bits, 1, afl->fsrv.real_map_size, cov_fd); + fclose(cov_fd); + + } + + #endif + if (afl->pizza_is_served) { SAYF(CURSOR_SHOW cLRD "\n\n+++ Baking aborted %s +++\n" cRST, |