mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-14 02:58:08 +00:00
AFL_SKIP_CRASHES is obsolete since 3.0
This commit is contained in:
@ -315,11 +315,6 @@ checks or alter some of the more exotic semantics of the tool:
|
|||||||
- Setting `AFL_NO_AUTODICT` will not load an LTO generated auto dictionary
|
- Setting `AFL_NO_AUTODICT` will not load an LTO generated auto dictionary
|
||||||
that is compiled into the target.
|
that is compiled into the target.
|
||||||
|
|
||||||
- `AFL_SKIP_CRASHES` causes AFL++ to tolerate crashing files in the input
|
|
||||||
queue. This can help with rare situations where a program crashes only
|
|
||||||
intermittently, but it's not really recommended under normal operating
|
|
||||||
conditions.
|
|
||||||
|
|
||||||
- Setting `AFL_HANG_TMOUT` allows you to specify a different timeout for
|
- Setting `AFL_HANG_TMOUT` allows you to specify a different timeout for
|
||||||
deciding if a particular test case is a "hang". The default is 1 second
|
deciding if a particular test case is a "hang". The default is 1 second
|
||||||
or the value of the `-t` parameter, whichever is larger. Dialing the value
|
or the value of the `-t` parameter, whichever is larger. Dialing the value
|
||||||
|
@ -388,7 +388,7 @@ typedef struct afl_env_vars {
|
|||||||
afl_exit_on_seed_issues;
|
afl_exit_on_seed_issues;
|
||||||
|
|
||||||
u8 *afl_tmpdir, *afl_custom_mutator_library, *afl_python_module, *afl_path,
|
u8 *afl_tmpdir, *afl_custom_mutator_library, *afl_python_module, *afl_path,
|
||||||
*afl_hang_tmout, *afl_forksrv_init_tmout, *afl_skip_crashes, *afl_preload,
|
*afl_hang_tmout, *afl_forksrv_init_tmout, *afl_preload,
|
||||||
*afl_max_det_extras, *afl_statsd_host, *afl_statsd_port,
|
*afl_max_det_extras, *afl_statsd_host, *afl_statsd_port,
|
||||||
*afl_crash_exitcode, *afl_statsd_tags_flavor, *afl_testcache_size,
|
*afl_crash_exitcode, *afl_statsd_tags_flavor, *afl_testcache_size,
|
||||||
*afl_testcache_entries, *afl_kill_signal, *afl_target_env,
|
*afl_testcache_entries, *afl_kill_signal, *afl_target_env,
|
||||||
|
@ -823,7 +823,6 @@ void perform_dry_run(afl_state_t *afl) {
|
|||||||
|
|
||||||
struct queue_entry *q;
|
struct queue_entry *q;
|
||||||
u32 cal_failures = 0, idx;
|
u32 cal_failures = 0, idx;
|
||||||
u8 * skip_crashes = afl->afl_env.afl_skip_crashes;
|
|
||||||
u8 * use_mem;
|
u8 * use_mem;
|
||||||
|
|
||||||
for (idx = 0; idx < afl->queued_paths; idx++) {
|
for (idx = 0; idx < afl->queued_paths; idx++) {
|
||||||
@ -923,27 +922,6 @@ void perform_dry_run(afl_state_t *afl) {
|
|||||||
|
|
||||||
if (afl->crash_mode) { break; }
|
if (afl->crash_mode) { break; }
|
||||||
|
|
||||||
if (skip_crashes) {
|
|
||||||
|
|
||||||
if (afl->fsrv.uses_crash_exitcode) {
|
|
||||||
|
|
||||||
WARNF(
|
|
||||||
"Test case results in a crash or AFL_CRASH_EXITCODE %d "
|
|
||||||
"(skipping)",
|
|
||||||
(int)(s8)afl->fsrv.crash_exitcode);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
WARNF("Test case results in a crash (skipping)");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
q->cal_failed = CAL_CHANCES;
|
|
||||||
++cal_failures;
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (afl->fsrv.mem_limit) {
|
if (afl->fsrv.mem_limit) {
|
||||||
|
|
||||||
u8 val_buf[STRINGIFY_VAL_SIZE_MAX];
|
u8 val_buf[STRINGIFY_VAL_SIZE_MAX];
|
||||||
@ -1117,14 +1095,12 @@ void perform_dry_run(afl_state_t *afl) {
|
|||||||
|
|
||||||
if (cal_failures == afl->queued_paths) {
|
if (cal_failures == afl->queued_paths) {
|
||||||
|
|
||||||
FATAL("All test cases time out%s, giving up!",
|
FATAL("All test cases time out or crash, giving up!");
|
||||||
skip_crashes ? " or crash" : "");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WARNF("Skipped %u test cases (%0.02f%%) due to timeouts%s.", cal_failures,
|
WARNF("Skipped %u test cases (%0.02f%%) due to timeouts or crashes.",
|
||||||
((double)cal_failures) * 100 / afl->queued_paths,
|
cal_failures, ((double)cal_failures) * 100 / afl->queued_paths);
|
||||||
skip_crashes ? " or crashes" : "");
|
|
||||||
|
|
||||||
if (cal_failures * 5 > afl->queued_paths) {
|
if (cal_failures * 5 > afl->queued_paths) {
|
||||||
|
|
||||||
|
@ -206,8 +206,7 @@ void read_afl_environment(afl_state_t *afl, char **envp) {
|
|||||||
|
|
||||||
afl_environment_variable_len)) {
|
afl_environment_variable_len)) {
|
||||||
|
|
||||||
afl->afl_env.afl_skip_crashes =
|
// we should mark this obsolete in a few versions
|
||||||
(u8 *)get_afl_env(afl_environment_variables[i]);
|
|
||||||
|
|
||||||
} else if (!strncmp(env, "AFL_HANG_TMOUT",
|
} else if (!strncmp(env, "AFL_HANG_TMOUT",
|
||||||
|
|
||||||
|
@ -240,7 +240,7 @@ static void usage(u8 *argv0, int more_help) {
|
|||||||
"AFL_SHUFFLE_QUEUE: reorder the input queue randomly on startup\n"
|
"AFL_SHUFFLE_QUEUE: reorder the input queue randomly on startup\n"
|
||||||
"AFL_SKIP_BIN_CHECK: skip afl compatibility checks, also disables auto map size\n"
|
"AFL_SKIP_BIN_CHECK: skip afl compatibility checks, also disables auto map size\n"
|
||||||
"AFL_SKIP_CPUFREQ: do not warn about variable cpu clocking\n"
|
"AFL_SKIP_CPUFREQ: do not warn about variable cpu clocking\n"
|
||||||
"AFL_SKIP_CRASHES: during initial dry run do not terminate for crashing inputs\n"
|
//"AFL_SKIP_CRASHES: during initial dry run do not terminate for crashing inputs\n"
|
||||||
"AFL_STATSD: enables StatsD metrics collection\n"
|
"AFL_STATSD: enables StatsD metrics collection\n"
|
||||||
"AFL_STATSD_HOST: change default statsd host (default 127.0.0.1)\n"
|
"AFL_STATSD_HOST: change default statsd host (default 127.0.0.1)\n"
|
||||||
"AFL_STATSD_PORT: change default statsd port (default: 8125)\n"
|
"AFL_STATSD_PORT: change default statsd port (default: 8125)\n"
|
||||||
|
Reference in New Issue
Block a user