diff options
author | Kostya Serebryany <kcc@google.com> | 2015-08-05 23:02:57 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2015-08-05 23:02:57 +0000 |
commit | 4cc10d432a0b38e4ec5292b39925f95ebcde2801 (patch) | |
tree | e40f745ad8d70ac0b8c5dfa6925f0b21fea2089a | |
parent | aa365b2fcd975064234b0859d0881702789b6c40 (diff) | |
download | bcm5719-llvm-4cc10d432a0b38e4ec5292b39925f95ebcde2801.tar.gz bcm5719-llvm-4cc10d432a0b38e4ec5292b39925f95ebcde2801.zip |
[libFuzzer] in dfsan mode, set labels every time we start recording traces as opposed to doing it at process startup. This ensures that the labels are fresh.
llvm-svn: 244165
-rw-r--r-- | llvm/lib/Fuzzer/FuzzerTraceState.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerTraceState.cpp b/llvm/lib/Fuzzer/FuzzerTraceState.cpp index 13635a70d76..c6f7c9e5a95 100644 --- a/llvm/lib/Fuzzer/FuzzerTraceState.cpp +++ b/llvm/lib/Fuzzer/FuzzerTraceState.cpp @@ -394,6 +394,9 @@ static TraceState *TS; void Fuzzer::StartTraceRecording() { if (!TS) return; + if (ReallyHaveDFSan()) + for (size_t i = 0; i < static_cast<size_t>(Options.MaxLen); i++) + dfsan_set_label(i + 1, &CurrentUnit[i], 1); TS->StartTraceRecording(); } @@ -417,7 +420,6 @@ void Fuzzer::InitializeTraceState() { dfsan_label L = dfsan_create_label("input", (void*)(i + 1)); // We assume that no one else has called dfsan_create_label before. assert(L == i + 1); - dfsan_set_label(L, &CurrentUnit[i], 1); } } |