mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-12 18:18:07 +00:00
update how AFL_EXIT_WHEN_DONE and colors of cycles done are working
This commit is contained in:
@ -424,9 +424,8 @@ checks or alter some of the more exotic semantics of the tool:
|
|||||||
types of automated jobs.
|
types of automated jobs.
|
||||||
|
|
||||||
- `AFL_EXIT_WHEN_DONE` causes afl-fuzz to terminate when all existing paths
|
- `AFL_EXIT_WHEN_DONE` causes afl-fuzz to terminate when all existing paths
|
||||||
have been fuzzed and there were no new finds for a while. This would be
|
have been fuzzed and there were no new finds for a while. This is basically
|
||||||
normally indicated by the cycle counter in the UI turning green. May be
|
when the fuzzing state says `state: finished`
|
||||||
convenient for some types of automated jobs.
|
|
||||||
|
|
||||||
- Setting `AFL_EXPAND_HAVOC_NOW` will start in the extended havoc mode that
|
- Setting `AFL_EXPAND_HAVOC_NOW` will start in the extended havoc mode that
|
||||||
includes costly mutations. afl-fuzz automatically enables this mode when
|
includes costly mutations. afl-fuzz automatically enables this mode when
|
||||||
|
@ -56,6 +56,8 @@ char *get_fuzzing_state(afl_state_t *afl) {
|
|||||||
|
|
||||||
if (unlikely(percent_cur >= 80 && percent_total >= 80)) {
|
if (unlikely(percent_cur >= 80 && percent_total >= 80)) {
|
||||||
|
|
||||||
|
if (unlikely(afl->afl_env.afl_exit_when_done)) { afl->stop_soon = 2; }
|
||||||
|
|
||||||
return fuzzing_state[3];
|
return fuzzing_state[3];
|
||||||
|
|
||||||
} else if (unlikely(percent_cur >= 55 && percent_total >= 55)) {
|
} else if (unlikely(percent_cur >= 55 && percent_total >= 55)) {
|
||||||
@ -822,15 +824,6 @@ void show_stats_normal(afl_state_t *afl) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Honor AFL_EXIT_WHEN_DONE and AFL_BENCH_UNTIL_CRASH. */
|
|
||||||
|
|
||||||
if (unlikely(!afl->non_instrumented_mode && afl->cycles_wo_finds > 100 &&
|
|
||||||
!afl->pending_not_fuzzed && afl->afl_env.afl_exit_when_done)) {
|
|
||||||
|
|
||||||
afl->stop_soon = 2;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* AFL_EXIT_ON_TIME. */
|
/* AFL_EXIT_ON_TIME. */
|
||||||
|
|
||||||
/* If no coverage was found yet, check whether run time is greater than
|
/* If no coverage was found yet, check whether run time is greater than
|
||||||
@ -998,14 +991,14 @@ void show_stats_normal(afl_state_t *afl) {
|
|||||||
} else
|
} else
|
||||||
|
|
||||||
/* Subsequent cycles, but we're still making finds. */
|
/* Subsequent cycles, but we're still making finds. */
|
||||||
if (afl->cycles_wo_finds < 25 || min_wo_finds < 30) {
|
if (afl->cycles_wo_finds < 2 || min_wo_finds <= 30) {
|
||||||
|
|
||||||
strcpy(tmp, cYEL);
|
strcpy(tmp, cYEL);
|
||||||
|
|
||||||
} else
|
} else
|
||||||
|
|
||||||
/* No finds for a long time and no test cases to try. */
|
/* No finds for a long time and no test cases to try. */
|
||||||
if (afl->cycles_wo_finds > 100 && !afl->pending_not_fuzzed &&
|
if (afl->cycles_wo_finds > 1 && !afl->pending_not_fuzzed &&
|
||||||
min_wo_finds > 120) {
|
min_wo_finds > 120) {
|
||||||
|
|
||||||
strcpy(tmp, cLGN);
|
strcpy(tmp, cLGN);
|
||||||
@ -1656,15 +1649,6 @@ void show_stats_pizza(afl_state_t *afl) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Honor AFL_EXIT_WHEN_DONE and AFL_BENCH_UNTIL_CRASH. */
|
|
||||||
|
|
||||||
if (unlikely(!afl->non_instrumented_mode && afl->cycles_wo_finds > 100 &&
|
|
||||||
!afl->pending_not_fuzzed && afl->afl_env.afl_exit_when_done)) {
|
|
||||||
|
|
||||||
afl->stop_soon = 2;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* AFL_EXIT_ON_TIME. */
|
/* AFL_EXIT_ON_TIME. */
|
||||||
|
|
||||||
/* If no coverage was found yet, check whether run time is greater than
|
/* If no coverage was found yet, check whether run time is greater than
|
||||||
@ -1813,14 +1797,14 @@ void show_stats_pizza(afl_state_t *afl) {
|
|||||||
} else
|
} else
|
||||||
|
|
||||||
/* Subsequent cycles, but we're still making finds. */
|
/* Subsequent cycles, but we're still making finds. */
|
||||||
if (afl->cycles_wo_finds < 25 || min_wo_finds < 30) {
|
if (afl->cycles_wo_finds < 2 || min_wo_finds <= 30) {
|
||||||
|
|
||||||
strcpy(tmp, cYEL);
|
strcpy(tmp, cYEL);
|
||||||
|
|
||||||
} else
|
} else
|
||||||
|
|
||||||
/* No finds for a long time and no test cases to try. */
|
/* No finds for a long time and no test cases to try. */
|
||||||
if (afl->cycles_wo_finds > 100 && !afl->pending_not_fuzzed &&
|
if (afl->cycles_wo_finds > 1 && !afl->pending_not_fuzzed &&
|
||||||
min_wo_finds > 120) {
|
min_wo_finds > 120) {
|
||||||
|
|
||||||
strcpy(tmp, cLGN);
|
strcpy(tmp, cLGN);
|
||||||
|
Reference in New Issue
Block a user