mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-14 11:08:06 +00:00
afl-gcc and afl-clang: fail when binary name can't be used to determine build mode
This is a continuation of PR #318. The goal is to prevent issues where binaries with the wrong name will silently pass control to the C compiler instead of failing. This makes it more explicit that aflplusplus relies on the name of the binary for correct compiler execution.
This commit is contained in:
@ -149,11 +149,17 @@ static void edit_params(u32 argc, char **argv) {
|
||||
u8 *alt_cxx = getenv("AFL_CXX");
|
||||
cc_params[0] = alt_cxx && *alt_cxx ? alt_cxx : (u8 *)"clang++";
|
||||
|
||||
} else {
|
||||
} else if (!strcmp(name, "afl-clang")) {
|
||||
|
||||
u8 *alt_cc = getenv("AFL_CC");
|
||||
cc_params[0] = alt_cc && *alt_cc ? alt_cc : (u8 *)"clang";
|
||||
|
||||
} else {
|
||||
|
||||
fprintf(stderr, "Name of the binary: %s\n", argv[0]);
|
||||
FATAL(
|
||||
"Name of the binary is not a known name, expected afl-clang(++)");
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
@ -166,12 +172,17 @@ static void edit_params(u32 argc, char **argv) {
|
||||
|
||||
#ifdef __APPLE__
|
||||
|
||||
if (!strcmp(name, "afl-g++"))
|
||||
if (!strcmp(name, "afl-g++")) {
|
||||
cc_params[0] = getenv("AFL_CXX");
|
||||
else if (!strcmp(name, "afl-gcj"))
|
||||
} else if (!strcmp(name, "afl-gcj")) {
|
||||
cc_params[0] = getenv("AFL_GCJ");
|
||||
else
|
||||
} else if (!strcmp(name, "afl-gcc")) {
|
||||
cc_params[0] = getenv("AFL_CC");
|
||||
} else {
|
||||
fprintf(stderr, "Name of the binary: %s\n", argv[0]);
|
||||
FATAL(
|
||||
"Name of the binary is not a known name, expected afl-gcc/g++/gcj");
|
||||
}
|
||||
|
||||
if (!cc_params[0]) {
|
||||
|
||||
@ -199,11 +210,17 @@ static void edit_params(u32 argc, char **argv) {
|
||||
u8 *alt_cc = getenv("AFL_GCJ");
|
||||
cc_params[0] = alt_cc && *alt_cc ? alt_cc : (u8 *)"gcj";
|
||||
|
||||
} else {
|
||||
} else if (!strcmp(name, "afl-gcc")) {
|
||||
|
||||
u8 *alt_cc = getenv("AFL_CC");
|
||||
cc_params[0] = alt_cc && *alt_cc ? alt_cc : (u8 *)"gcc";
|
||||
|
||||
} else {
|
||||
|
||||
fprintf(stderr, "Name of the binary: %s\n", argv[0]);
|
||||
FATAL(
|
||||
"Name of the binary is not a known name, expected afl-gcc/g++/gcj");
|
||||
|
||||
}
|
||||
|
||||
#endif /* __APPLE__ */
|
||||
|
Reference in New Issue
Block a user