mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-13 02:28:09 +00:00
Fix integration
This commit is contained in:
@ -36,8 +36,8 @@
|
|||||||
#define NON_COV_INCREASE_BUG (1 << 5)
|
#define NON_COV_INCREASE_BUG (1 << 5)
|
||||||
|
|
||||||
enum SanitizerAbstraction {
|
enum SanitizerAbstraction {
|
||||||
UNIQUE_TRACE = 0, // Feed all unique trace to sanitizers, the most sensitive
|
SIMPLIFY_TRACE = 0, // Feed all unique trace to sanitizers, the most sensitive
|
||||||
SIMPLIFY_TRACE,
|
UNIQUE_TRACE,
|
||||||
COVERAGE_INCREASE // Feed all coverage increasing cases to sanitizers, the least sensitive
|
COVERAGE_INCREASE // Feed all coverage increasing cases to sanitizers, the least sensitive
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2243,6 +2243,14 @@ int main(int argc, char **argv_orig, char **envp) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setup_cmdline_file(afl, argv + optind);
|
setup_cmdline_file(afl, argv + optind);
|
||||||
|
|
||||||
|
// Let's check SAND sanitizers binaries a bit earlier
|
||||||
|
// so that we won't overwrite target_path.
|
||||||
|
// Lazymio: why does cmplog fsrv even work?!
|
||||||
|
for (u8 i = 0; i < afl->san_binary_length; i++) {
|
||||||
|
check_binary(afl, afl->san_binary[i]);
|
||||||
|
}
|
||||||
|
|
||||||
check_binary(afl, argv[optind]);
|
check_binary(afl, argv[optind]);
|
||||||
|
|
||||||
u64 prev_target_hash = 0;
|
u64 prev_target_hash = 0;
|
||||||
@ -2421,12 +2429,6 @@ int main(int argc, char **argv_orig, char **envp) {
|
|||||||
|
|
||||||
if (!afl->fsrv.out_file) { setup_stdio_file(afl); }
|
if (!afl->fsrv.out_file) { setup_stdio_file(afl); }
|
||||||
|
|
||||||
for (u8 i = 0; i < afl->san_binary_length; i++) {
|
|
||||||
|
|
||||||
check_binary(afl, afl->san_binary[i]);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (afl->cmplog_binary) {
|
if (afl->cmplog_binary) {
|
||||||
|
|
||||||
if (afl->unicorn_mode) {
|
if (afl->unicorn_mode) {
|
||||||
@ -2586,23 +2588,23 @@ int main(int argc, char **argv_orig, char **envp) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
san_abstraction = getenv("AFL_SAN_ABSTRACTION");
|
san_abstraction = getenv("AFL_SAN_ABSTRACTION");
|
||||||
if (!san_abstraction || !strcmp(san_abstraction, "unique_trace")) {
|
if (!san_abstraction || !strcmp(san_abstraction, "simplify_trace")) {
|
||||||
|
|
||||||
afl->san_abstraction = UNIQUE_TRACE;
|
afl->san_abstraction = SIMPLIFY_TRACE;
|
||||||
|
|
||||||
} else if (!strcmp(san_abstraction, "coverage_increase")) {
|
} else if (!strcmp(san_abstraction, "coverage_increase")) {
|
||||||
|
|
||||||
afl->san_abstraction = COVERAGE_INCREASE;
|
afl->san_abstraction = COVERAGE_INCREASE;
|
||||||
|
|
||||||
} else if (!strcmp(san_abstraction, "simplify_trace")) {
|
} else if (!strcmp(san_abstraction, "unique_trace")) {
|
||||||
|
|
||||||
afl->san_abstraction = SIMPLIFY_TRACE;
|
afl->san_abstraction = UNIQUE_TRACE;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
WARNF("Unkown abstraction: %s, fallback to unique trace.\n",
|
WARNF("Unkown abstraction: %s, fallback to unique trace.\n",
|
||||||
san_abstraction);
|
san_abstraction);
|
||||||
afl->san_abstraction = UNIQUE_TRACE;
|
afl->san_abstraction = SIMPLIFY_TRACE;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2622,7 +2624,7 @@ int main(int argc, char **argv_orig, char **envp) {
|
|||||||
|
|
||||||
for (u8 i = 0; i < afl->san_binary_length; i++) {
|
for (u8 i = 0; i < afl->san_binary_length; i++) {
|
||||||
|
|
||||||
ACTF("Spawning forkserver for %s", afl->san_binary[i]);
|
ACTF("Spawning SAND forkserver for %s", afl->san_binary[i]);
|
||||||
afl_fsrv_init_dup(&afl->san_fsrvs[i], &afl->fsrv);
|
afl_fsrv_init_dup(&afl->san_fsrvs[i], &afl->fsrv);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2700,7 +2702,7 @@ int main(int argc, char **argv_orig, char **envp) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
OKF("forkserver for %s successfully started", afl->san_binary[i]);
|
OKF("SAND forkserver for %s successfully started", afl->san_binary[i]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user