aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/afl-cc.c2
-rw-r--r--src/afl-common.c12
-rw-r--r--src/afl-fuzz-one.c1
-rw-r--r--src/afl-fuzz-redqueen.c2
-rw-r--r--src/afl-fuzz-run.c30
-rw-r--r--src/afl-fuzz.c7
6 files changed, 28 insertions, 26 deletions
diff --git a/src/afl-cc.c b/src/afl-cc.c
index 8af8e7b0..486f7468 100644
--- a/src/afl-cc.c
+++ b/src/afl-cc.c
@@ -1777,6 +1777,8 @@ int main(int argc, char **argv, char **envp) {
SAYF(
"\nLLVM/LTO/afl-clang-fast/afl-clang-lto specific environment "
"variables:\n"
+ " AFL_LLVM_THREADSAFE_INST: instrument with thread safe counters, "
+ "disables neverzero\n"
COUNTER_BEHAVIOUR
diff --git a/src/afl-common.c b/src/afl-common.c
index 8826de70..c61ce3d8 100644
--- a/src/afl-common.c
+++ b/src/afl-common.c
@@ -479,9 +479,17 @@ void print_suggested_envs(char *mispelled_env) {
size_t end = start + strcspn(afl_env + start, "_") + 1;
memcpy(reduced, afl_env, start);
- if (end < afl_env_len)
+ if (end < afl_env_len) {
+
memcpy(reduced + start, afl_env + end, afl_env_len - end);
- reduced[afl_env_len - end + start] = 0;
+
+ }
+
+ if (afl_env_len + start >= end) {
+
+ reduced[afl_env_len - end + start] = 0;
+
+ }
int distance = string_distance_levenshtein(reduced, env_name);
if (distance < ENV_SIMILARITY_TRESHOLD && seen[j] == 0) {
diff --git a/src/afl-fuzz-one.c b/src/afl-fuzz-one.c
index 4a3e7f33..c3ce2edd 100644
--- a/src/afl-fuzz-one.c
+++ b/src/afl-fuzz-one.c
@@ -561,6 +561,7 @@ u8 fuzz_one_original(afl_state_t *afl) {
if (afl->cmplog_lvl == 3 ||
(afl->cmplog_lvl == 2 && afl->queue_cur->tc_ref) ||
+ afl->queue_cur->favored ||
!(afl->fsrv.total_execs % afl->queued_paths) ||
get_cur_time() - afl->last_path_time > 300000) { // 300 seconds
diff --git a/src/afl-fuzz-redqueen.c b/src/afl-fuzz-redqueen.c
index cf1e5ea5..22fd0621 100644
--- a/src/afl-fuzz-redqueen.c
+++ b/src/afl-fuzz-redqueen.c
@@ -438,7 +438,7 @@ static u8 colorization(afl_state_t *afl, u8 *buf, u32 len,
if (taint) {
if (afl->colorize_success && afl->cmplog_lvl < 3 &&
- (len / positions == 1 && positions > CMPLOG_POSITIONS_MAX &&
+ (positions > CMPLOG_POSITIONS_MAX && len / positions == 1 &&
afl->active_paths / afl->colorize_success > CMPLOG_CORPUS_PERCENT)) {
#ifdef _DEBUG
diff --git a/src/afl-fuzz-run.c b/src/afl-fuzz-run.c
index 5a481639..2c3e8a1b 100644
--- a/src/afl-fuzz-run.c
+++ b/src/afl-fuzz-run.c
@@ -107,27 +107,21 @@ write_to_testcase(afl_state_t *afl, void *mem, u32 len) {
new_size =
el->afl_custom_post_process(el->data, new_mem, new_size, &new_buf);
- }
-
- new_mem = new_buf;
-
- });
+ if (unlikely(!new_buf && new_size <= 0)) {
- if (unlikely(!new_buf && (new_size <= 0))) {
-
- FATAL("Custom_post_process failed (ret: %lu)", (long unsigned)new_size);
+ FATAL("Custom_post_process failed (ret: %lu)",
+ (long unsigned)new_size);
- } else if (likely(new_buf)) {
+ }
- /* everything as planned. use the new data. */
- afl_fsrv_write_to_testcase(&afl->fsrv, new_buf, new_size);
+ new_mem = new_buf;
- } else {
+ }
- /* custom mutators do not has a custom_post_process function */
- afl_fsrv_write_to_testcase(&afl->fsrv, mem, len);
+ });
- }
+ /* everything as planned. use the potentially new data. */
+ afl_fsrv_write_to_testcase(&afl->fsrv, new_mem, new_size);
} else {
@@ -188,16 +182,16 @@ static void write_with_gap(afl_state_t *afl, u8 *mem, u32 len, u32 skip_at,
new_size =
el->afl_custom_post_process(el->data, new_mem, new_size, &new_buf);
- if (unlikely(!new_buf || (new_size <= 0))) {
+ if (unlikely(!new_buf || new_size <= 0)) {
FATAL("Custom_post_process failed (ret: %lu)",
(long unsigned)new_size);
}
- }
+ new_mem = new_buf;
- new_mem = new_buf;
+ }
});
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index a3a623d9..5bdb4c8d 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -2066,13 +2066,10 @@ int main(int argc, char **argv_orig, char **envp) {
break;
case 4:
afl->expand_havoc = 5;
- if (afl->cmplog_lvl && afl->cmplog_lvl < 3) afl->cmplog_lvl = 3;
+ // if (afl->cmplog_lvl && afl->cmplog_lvl < 3) afl->cmplog_lvl =
+ // 3;
break;
case 5:
- // if not in sync mode, enable deterministic mode?
- // if (!afl->sync_id) afl->skip_deterministic = 0;
- afl->expand_havoc = 6;
- case 6:
// nothing else currently
break;