aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/afl-common.c2
-rw-r--r--src/afl-fuzz-queue.c13
2 files changed, 13 insertions, 2 deletions
diff --git a/src/afl-common.c b/src/afl-common.c
index 04a984cb..e5584e93 100644
--- a/src/afl-common.c
+++ b/src/afl-common.c
@@ -108,7 +108,7 @@ void set_sanitizer_defaults() {
if (!have_san_options) { strcpy(buf, default_options); }
if (have_asan_options) {
- if (NULL != strstr(have_asan_options, "detect_leaks=0")) {
+ if (NULL != strstr(have_asan_options, "detect_leaks=0") || NULL != strstr(have_asan_options, "detect_leaks=false")) {
strcat(buf, "exitcode=" STRINGIFY(LSAN_ERROR) ":fast_unwind_on_malloc=0:print_suppressions=0:detect_leaks=0:malloc_context_size=0:");
diff --git a/src/afl-fuzz-queue.c b/src/afl-fuzz-queue.c
index 999929a1..3d244aa8 100644
--- a/src/afl-fuzz-queue.c
+++ b/src/afl-fuzz-queue.c
@@ -476,6 +476,17 @@ void mark_as_redundant(afl_state_t *afl, struct queue_entry *q, u8 state) {
q->fs_redundant = state;
+ if (likely(q->fs_redundant)) {
+
+ if (unlikely(q->trace_mini)) {
+
+ ck_free(q->trace_mini);
+ q->trace_mini = NULL;
+
+ }
+
+ }
+
sprintf(fn, "%s/queue/.state/redundant_edges/%s", afl->out_dir,
strrchr((char *)q->fname, '/') + 1);
@@ -901,7 +912,7 @@ void update_bitmap_score(afl_state_t *afl, struct queue_entry *q) {
if (!--afl->top_rated[i]->tc_ref) {
ck_free(afl->top_rated[i]->trace_mini);
- afl->top_rated[i]->trace_mini = 0;
+ afl->top_rated[i]->trace_mini = NULL;
}