From a149d64a7e9a9f55df96669053a74ca53aa65117 Mon Sep 17 00:00:00 2001 From: Kostya Serebryany Date: Fri, 24 Mar 2017 21:09:16 +0000 Subject: [PATCH] [libFuzzer] honor -exact_artifact_path for all intermediate files during crash minimization (https://github.com/google/oss-fuzz/issues/250) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298740 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Fuzzer/FuzzerDriver.cpp | 4 +++- lib/Fuzzer/test/minimize_crash.test | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/Fuzzer/FuzzerDriver.cpp b/lib/Fuzzer/FuzzerDriver.cpp index e837eb5ff22..a4e16bad916 100644 --- a/lib/Fuzzer/FuzzerDriver.cpp +++ b/lib/Fuzzer/FuzzerDriver.cpp @@ -317,7 +317,9 @@ int MinimizeCrashInput(const std::vector &Args, CurrentFilePath.c_str(), U.size()); std::string ArtifactPath = - Options.ArtifactPrefix + "minimized-from-" + Hash(U); + Flags.exact_artifact_path + ? Flags.exact_artifact_path + : Options.ArtifactPrefix + "minimized-from-" + Hash(U); Cmd += " -minimize_crash_internal_step=1 -exact_artifact_path=" + ArtifactPath; Printf("CRASH_MIN: executing: %s\n", Cmd.c_str()); diff --git a/lib/Fuzzer/test/minimize_crash.test b/lib/Fuzzer/test/minimize_crash.test index 7d60ea65385..5643c6bacb0 100644 --- a/lib/Fuzzer/test/minimize_crash.test +++ b/lib/Fuzzer/test/minimize_crash.test @@ -6,7 +6,8 @@ CHECK_EXACT: CRASH_MIN: failed to minimize beyond exact_minimized_path (3 bytes) RUN: rm not_minimal_crash minimized-from-* exact_minimized_path RUN: echo -n 'abcd*xyz' > not_minimal_crash -RUN: LLVMFuzzer-SingleByteInputTest -minimize_crash=1 not_minimal_crash -artifact_prefix=./ZZZ- -exact_artifact_path=exact_minimized_path 2>&1 | FileCheck %s --check-prefix=MIN1 -MIN1: Test unit written to ./ZZZ-minimized-from- +RUN: LLVMFuzzer-SingleByteInputTest -minimize_crash=1 not_minimal_crash -exact_artifact_path=exact_minimized_path 2>&1 | FileCheck %s --check-prefix=MIN1 +MIN1: Test unit written to exact_minimized_path +MIN1: Test unit written to exact_minimized_path MIN1: INFO: The input is small enough, exiting MIN1: CRASH_MIN: failed to minimize beyond exact_minimized_path (1 bytes), exiting -- 2.11.0