aboutsummaryrefslogtreecommitdiff
path: root/src/afl-fuzz-one.c
diff options
context:
space:
mode:
authorAndrea Fioraldi <andreafioraldi@gmail.com>2020-04-14 10:11:22 +0200
committerAndrea Fioraldi <andreafioraldi@gmail.com>2020-04-14 10:11:22 +0200
commit982d46e7cb2c7cabcd8969e6303c3cb8f3d8e56a (patch)
treef8768002211d8531c226adab51751be87c6f7bce /src/afl-fuzz-one.c
parent5daec436f93240a0c411d432456f3f86fe1f3181 (diff)
parent1fbface656ae4f64fc8643def840fa488098e580 (diff)
downloadafl++-982d46e7cb2c7cabcd8969e6303c3cb8f3d8e56a.tar.gz
solve conflicts
Diffstat (limited to 'src/afl-fuzz-one.c')
-rw-r--r--src/afl-fuzz-one.c35
1 files changed, 23 insertions, 12 deletions
diff --git a/src/afl-fuzz-one.c b/src/afl-fuzz-one.c
index 80567160..4a039a1d 100644
--- a/src/afl-fuzz-one.c
+++ b/src/afl-fuzz-one.c
@@ -501,7 +501,7 @@ u8 fuzz_one_original(afl_state_t *afl) {
if (unlikely(afl->use_radamsa > 1)) goto radamsa_stage;
- if (afl->shm.cmplog_mode) {
+ if (afl->shm.cmplog_mode && !afl->queue_cur->fully_colorized) {
if (input_to_state_stage(afl, in_buf, out_buf, len,
afl->queue_cur->exec_cksum))
@@ -2522,20 +2522,15 @@ u8 mopt_common_fuzzing(afl_state_t *afl, MOpt_globals_t MOpt_globals) {
orig_perf = perf_score = calculate_score(afl, afl->queue_cur);
- /* Skip right away if -d is given, if we have done deterministic fuzzing on
- this entry ourselves (was_fuzzed), or if it has gone through deterministic
- testing in earlier, resumed runs (passed_det). */
+ if (afl->shm.cmplog_mode && !afl->queue_cur->fully_colorized) {
- if (afl->skip_deterministic || afl->queue_cur->was_fuzzed ||
- afl->queue_cur->passed_det)
- goto havoc_stage;
+ if (input_to_state_stage(afl, in_buf, out_buf, len,
+ afl->queue_cur->exec_cksum))
+ goto abandon_entry;
- /* Skip deterministic fuzzing if exec path checksum puts this out of scope
- for this master instance. */
+ }
- if (afl->master_max &&
- (afl->queue_cur->exec_cksum % afl->master_max) != afl->master_id - 1)
- goto havoc_stage;
+ /* Go to pacemker fuzzing if MOpt is doing well */
cur_ms_lv = get_cur_time();
if (!(afl->key_puppet == 0 &&
@@ -2548,6 +2543,22 @@ u8 mopt_common_fuzzing(afl_state_t *afl, MOpt_globals_t MOpt_globals) {
goto pacemaker_fuzzing;
}
+
+ /* Skip right away if -d is given, if we have done deterministic fuzzing on
+ this entry ourselves (was_fuzzed), or if it has gone through deterministic
+ testing in earlier, resumed runs (passed_det). */
+
+ if (afl->skip_deterministic || afl->queue_cur->was_fuzzed ||
+ afl->queue_cur->passed_det)
+ goto havoc_stage;
+
+ /* Skip deterministic fuzzing if exec path checksum puts this out of scope
+ for this master instance. */
+
+ if (afl->master_max &&
+ (afl->queue_cur->exec_cksum % afl->master_max) != afl->master_id - 1)
+ goto havoc_stage;
+
doing_det = 1;