mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-09 01:38:03 +00:00
[libFuzzer] limit the size of the inputs printed to stderr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243795 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cab56781b5
commit
427b5a50cf
@ -14,6 +14,7 @@
|
||||
#include <algorithm>
|
||||
|
||||
namespace fuzzer {
|
||||
static const size_t kMaxUnitSizeToPrint = 4096;
|
||||
|
||||
// Only one Fuzzer per process.
|
||||
static Fuzzer *F;
|
||||
@ -68,7 +69,8 @@ void Fuzzer::AlarmCallback() {
|
||||
Printf("ALARM: working on the last Unit for %zd seconds\n", Seconds);
|
||||
Printf(" and the timeout value is %d (use -timeout=N to change)\n",
|
||||
Options.UnitTimeoutSec);
|
||||
Print(CurrentUnit, "\n");
|
||||
if (CurrentUnit.size() <= kMaxUnitSizeToPrint)
|
||||
Print(CurrentUnit, "\n");
|
||||
PrintUnitInASCIIOrTokens(CurrentUnit, "\n");
|
||||
WriteUnitToFileWithPrefix(CurrentUnit, "timeout-");
|
||||
exit(1);
|
||||
@ -160,7 +162,8 @@ size_t Fuzzer::RunOne(const Unit &U) {
|
||||
if (TimeOfUnit > TimeOfLongestUnitInSeconds) {
|
||||
TimeOfLongestUnitInSeconds = TimeOfUnit;
|
||||
Printf("Longest unit: %zd s:\n", TimeOfLongestUnitInSeconds);
|
||||
Print(U, "\n");
|
||||
if (U.size() <= kMaxUnitSizeToPrint)
|
||||
Print(U, "\n");
|
||||
WriteUnitToFileWithPrefix(U, "long-running-unit-");
|
||||
}
|
||||
return Res;
|
||||
@ -252,8 +255,11 @@ void Fuzzer::WriteToOutputCorpus(const Unit &U) {
|
||||
void Fuzzer::WriteUnitToFileWithPrefix(const Unit &U, const char *Prefix) {
|
||||
std::string Path = Prefix + Hash(U);
|
||||
WriteToFile(U, Path);
|
||||
Printf("Test unit written to %s\nBase64: ", Path.c_str());
|
||||
PrintFileAsBase64(Path);
|
||||
Printf("Test unit written to %s\n", Path.c_str());
|
||||
if (U.size() <= kMaxUnitSizeToPrint) {
|
||||
Printf("Base64: ");
|
||||
PrintFileAsBase64(Path);
|
||||
}
|
||||
}
|
||||
|
||||
void Fuzzer::SaveCorpus() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user