aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2021-03-09 16:53:56 +0100
committervanhauser-thc <vh@thc.org>2021-03-09 16:53:56 +0100
commit47f2650a32470172a32c4ebd446003cb8a4b80e8 (patch)
tree69deb46ab5a81758b9b0d5699dc346e6685c90bc /src
parent74a6044b3fba496c1255f9aedbf5b7253ae29f0e (diff)
downloadafl++-47f2650a32470172a32c4ebd446003cb8a4b80e8.tar.gz
add AFL_NOOPT
Diffstat (limited to 'src')
-rw-r--r--src/afl-cc.c21
-rw-r--r--src/afl-common.c1
2 files changed, 20 insertions, 2 deletions
diff --git a/src/afl-cc.c b/src/afl-cc.c
index bb136fb9..8f9bb397 100644
--- a/src/afl-cc.c
+++ b/src/afl-cc.c
@@ -1025,7 +1025,7 @@ static void edit_params(u32 argc, char **argv, char **envp) {
int main(int argc, char **argv, char **envp) {
- int i;
+ int i, passthrough = 0;
char *callname = argv[0], *ptr = NULL;
if (getenv("AFL_DEBUG")) {
@@ -1045,6 +1045,13 @@ int main(int argc, char **argv, char **envp) {
}
+ if (getenv("AFL_PASSTHROUGH") || getenv("AFL_NOOPT")) {
+
+ passthrough = 1;
+ if (!debug) { be_quiet = 1; }
+
+ }
+
if ((ptr = strrchr(callname, '/')) != NULL) callname = ptr + 1;
argvnull = (u8 *)argv[0];
check_environment_vars(envp);
@@ -1665,6 +1672,7 @@ int main(int argc, char **argv, char **envp) {
" AFL_DONT_OPTIMIZE: disable optimization instead of -O3\n"
" AFL_NO_BUILTIN: no builtins for string compare functions (for "
"libtokencap.so)\n"
+ " AFL_NOOP: behave lik a normal compiler (to pass configure tests)\n"
" AFL_PATH: path to instrumenting pass and runtime "
"(afl-compiler-rt.*o)\n"
" AFL_IGNORE_UNKNOWN_ENVS: don't warn on unknown env vars\n"
@@ -1977,7 +1985,16 @@ int main(int argc, char **argv, char **envp) {
}
- execvp(cc_params[0], (char **)cc_params);
+ if (passthrough) {
+
+ argv[0] = cc_params[0];
+ execvp(cc_params[0], (char **)argv);
+
+ } else {
+
+ execvp(cc_params[0], (char **)cc_params);
+
+ }
FATAL("Oops, failed to execute '%s' - check your PATH", cc_params[0]);
diff --git a/src/afl-common.c b/src/afl-common.c
index a306fe5e..68f82a5e 100644
--- a/src/afl-common.c
+++ b/src/afl-common.c
@@ -682,6 +682,7 @@ void check_environment_vars(char **envp) {
env[strlen(afl_environment_variables[i])] == '=') {
match = 1;
+
if ((val = getenv(afl_environment_variables[i])) && !*val) {
WARNF(