diff options
author | van Hauser <vh@thc.org> | 2023-03-28 19:29:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-28 19:29:04 +0200 |
commit | 661b626c87d623fe67db854d43d4ff37c3895109 (patch) | |
tree | 2e835bdf34f923dea7a511abaace3763edddaeab | |
parent | 214e24fff0e44704007e71dee8384f6382770381 (diff) | |
parent | 67e8c4f100903bf8111435f0ce574806d961cbad (diff) | |
download | afl++-661b626c87d623fe67db854d43d4ff37c3895109.tar.gz |
Merge pull request #1686 from tuliom/minor-fixes
Minor fixes
-rwxr-xr-x | .custom-format.py | 2 | ||||
-rw-r--r-- | instrumentation/SanitizerCoverageLTO.so.cc | 4 | ||||
-rw-r--r-- | src/afl-as.c | 22 |
3 files changed, 22 insertions, 6 deletions
diff --git a/.custom-format.py b/.custom-format.py index d07c26df..1295ce55 100755 --- a/.custom-format.py +++ b/.custom-format.py @@ -40,7 +40,7 @@ def check_clang_format_pip_version(): if importlib.util.find_spec('clang_format'): # Check if the installed version is the expected LLVM version if importlib.metadata.version('clang-format')\ - .startswith(CURRENT_LLVM+'.'): + .startswith(str(CURRENT_LLVM)+'.'): return True else: # Return False, because the clang-format version does not match diff --git a/instrumentation/SanitizerCoverageLTO.so.cc b/instrumentation/SanitizerCoverageLTO.so.cc index f82224ed..85f13c19 100644 --- a/instrumentation/SanitizerCoverageLTO.so.cc +++ b/instrumentation/SanitizerCoverageLTO.so.cc @@ -1787,14 +1787,16 @@ static void registerLTOPass(const PassManagerBuilder &, } +#if LLVM_VERSION_MAJOR < 16 static RegisterStandardPasses RegisterCompTransPass( PassManagerBuilder::EP_OptimizerLast, registerLTOPass); static RegisterStandardPasses RegisterCompTransPass0( PassManagerBuilder::EP_EnabledOnOptLevel0, registerLTOPass); -#if LLVM_VERSION_MAJOR >= 11 + #if LLVM_VERSION_MAJOR >= 11 static RegisterStandardPasses RegisterCompTransPassLTO( PassManagerBuilder::EP_FullLinkTimeOptimizationLast, registerLTOPass); + #endif #endif diff --git a/src/afl-as.c b/src/afl-as.c index a0eb612f..772e31b3 100644 --- a/src/afl-as.c +++ b/src/afl-as.c @@ -93,7 +93,7 @@ static u8 use_64bit = 0; static void edit_params(int argc, char **argv) { u8 *tmp_dir = getenv("TMPDIR"), *afl_as = getenv("AFL_AS"); - u32 i; + u32 i, input_index; #ifdef __APPLE__ @@ -142,7 +142,23 @@ static void edit_params(int argc, char **argv) { as_params[argc] = 0; - for (i = 1; (s32)i < argc - 1; i++) { + /* Find the input file. It's usually located near the end. + Assume there won't be any arguments referring to files after the input + file, e.g. as input.s -o output.o */ + for (input_index = argc - 1; input_index > 0; input_index--) { + + input_file = argv[input_index]; + /* Clang may add debug arguments after the input file. */ + if (strncmp(input_file, "-g", 2)) break; + + } + + if (input_index == 0) + FATAL("Could not find input file (not called through afl-gcc?)"); + + for (i = 1; (s32)i < argc; i++) { + + if (i == input_index) continue; if (!strcmp(argv[i], "--64")) { @@ -194,8 +210,6 @@ static void edit_params(int argc, char **argv) { #endif /* __APPLE__ */ - input_file = argv[argc - 1]; - if (input_file[0] == '-') { if (!strcmp(input_file + 1, "-version")) { |