From 8eb9ca25808742fffa61413cdf3ce26dd8c0704e Mon Sep 17 00:00:00 2001 From: Kostya Serebryany Date: Wed, 15 Nov 2017 16:42:52 +0000 Subject: [PATCH] [libFuzzer] respect max_len during merge llvm-svn: 318302 --- compiler-rt/lib/fuzzer/FuzzerMerge.cpp | 2 +- compiler-rt/test/fuzzer/merge.test | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/compiler-rt/lib/fuzzer/FuzzerMerge.cpp b/compiler-rt/lib/fuzzer/FuzzerMerge.cpp index 9b21a0917fb5..934871b15f59 100644 --- a/compiler-rt/lib/fuzzer/FuzzerMerge.cpp +++ b/compiler-rt/lib/fuzzer/FuzzerMerge.cpp @@ -379,7 +379,7 @@ void Fuzzer::CrashResistantMerge(const Vector &Args, Printf("MERGE-OUTER: %zd new files with %zd new features added\n", NewFiles.size(), NumNewFeatures); for (auto &F: NewFiles) - WriteToOutputCorpus(FileToVector(F)); + WriteToOutputCorpus(FileToVector(F, MaxInputLen)); // We are done, delete the control file if it was a temporary one. if (!MergeControlFilePathOrNull) RemoveFile(CFPath); diff --git a/compiler-rt/test/fuzzer/merge.test b/compiler-rt/test/fuzzer/merge.test index 262f26e5b02f..d77a4473bbfc 100644 --- a/compiler-rt/test/fuzzer/merge.test +++ b/compiler-rt/test/fuzzer/merge.test @@ -58,7 +58,11 @@ MERGE_WITH_CRASH: MERGE-OUTER: succesfull in 2 attempt(s) MERGE_WITH_CRASH: MERGE-OUTER: 3 new files # Check that we actually limit the size with max_len +RUN: rm %t/T1/* +RUN: echo 'FUZZER' > %t/T2/FUZZER RUN: %t-FullCoverageSetTest -merge=1 %t/T1 %t/T2 -max_len=5 2>&1 | FileCheck %s --check-prefix=MERGE_LEN5 +RUN: not grep FUZZER %t/T1/* +RUN: grep FUZZE %t/T1/* MERGE_LEN5: MERGE-OUTER: succesfull in 1 attempt(s) RUN: rm -rf %t/T1/* %t/T2/*