[libfuzzer] Disable failing DFSan-related testsThese have been broken by https://reviews.llvm.org/D104494.However, `lib/fuzzer/dataflow/` is unused (?) so addressing this is not a priority.Added
[libfuzzer] Disable failing DFSan-related testsThese have been broken by https://reviews.llvm.org/D104494.However, `lib/fuzzer/dataflow/` is unused (?) so addressing this is not a priority.Added TODOs to re-enable them in the future.Reviewed By: stephan.yichao.zhaoDifferential Revision: https://reviews.llvm.org/D104568
show more ...
[dfsan] Add full fast8 supportComplete support for fast8:- amend shadow size and mapping in runtime- remove fast16 mode and -dfsan-fast-16-labels flag- remove legacy mode and make fast8 mode the
[dfsan] Add full fast8 supportComplete support for fast8:- amend shadow size and mapping in runtime- remove fast16 mode and -dfsan-fast-16-labels flag- remove legacy mode and make fast8 mode the default- remove dfsan-fast-8-labels flag- remove functions in dfsan interface only applicable to legacy- remove legacy-related instrumentation code and tests- update documentation.Reviewed By: stephan.yichao.zhao, browneeeDifferential Revision: https://reviews.llvm.org/D103745
[DFSan] Add efficient fast16labels instrumentation mode.Adds the -fast-16-labels flag, which enables efficient instrumentationfor DFSan when the user needs <=16 labels. The instrumentationelimin
[DFSan] Add efficient fast16labels instrumentation mode.Adds the -fast-16-labels flag, which enables efficient instrumentationfor DFSan when the user needs <=16 labels. The instrumentationeliminates most branches and most calls to __dfsan_union or__dfsan_union_load.Reviewed By: vitalybukaDifferential Revision: https://reviews.llvm.org/D84371
[libFuzzer] split DataFlow.cpp into two .cpp files, one of which can be compiled w/o dfsan to speed things up (~25% speedup)llvm-svn: 364002
[libFuzzer] ensure that DFT and autofocus works for C++ (mangled) functionsllvm-svn: 363905
[libFuzzer] simplify the DFT trace collection using the new faster DFSan mode that traces up to 16 labels at a time and never runs out of labels. Second attempt. This time with a fix for windows (put
[libFuzzer] simplify the DFT trace collection using the new faster DFSan mode that traces up to 16 labels at a time and never runs out of labels. Second attempt. This time with a fix for windows (putenv instead of setenv))llvm-svn: 363445
Revert r363326 "[libFuzzer] simplify the DFT trace collection using the new faster DFSan mode that traces up to 16 labels at a time and never runs out of labels."It broke the Windows build:C:\b\s
Revert r363326 "[libFuzzer] simplify the DFT trace collection using the new faster DFSan mode that traces up to 16 labels at a time and never runs out of labels."It broke the Windows build:C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\lib\fuzzer\FuzzerDataFlowTrace.cpp(243): error C3861: 'setenv': identifier not foundThis also reverts the follow-up r363327.llvm-svn: 363358
[libFuzzer] simplify the DFT trace collection using the new faster DFSan mode that traces up to 16 labels at a time and never runs out of labels.llvm-svn: 363326
[libFuzzer] DFT: when dumping coverage, also dump the total number of instrumented blocks in a function; update merge_data_flow.py to merge coveragellvm-svn: 360272
[libFuzzer] extend the data flow tracer to also produce basic block coverage for every input. An extended test coming in a separte change.llvm-svn: 360213
[libFuzzer] Fix DataFlow.cpp logic when tracing long inputs.Summary:1. Do not create DFSan labels for the bytes which we do not trace. This is where we run out of labels at the first place.2. Whe
[libFuzzer] Fix DataFlow.cpp logic when tracing long inputs.Summary:1. Do not create DFSan labels for the bytes which we do not trace. This is where we run out of labels at the first place.2. When dumping the traces on the disk, make sure to offset the label identifiers by the number of the first byte in the trace range.3. For the last label, make sure to write it at the last position of the trace bit string, as that label represents the input size, not any particular byte.Also fixed the bug with division in python which I've introduced when migrated the scripts to Python3 (`//` is required for integral division).Otherwise, the scripts are wasting too much time unsuccessfully trying tocollect and process traces from the long inputs. For more context, seehttps://github.com/google/oss-fuzz/issues/1632#issuecomment-481761789Reviewers: kccReviewed By: kccSubscribers: delcypher, #sanitizers, llvm-commitsTags: #llvm, #sanitizersDifferential Revision: https://reviews.llvm.org/D60538llvm-svn: 358311
Update the file headers across all of the LLVM projects in the monorepoto reflect the new license.We understand that people may be surprised that we're moving the headerentirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepoto reflect the new license.We understand that people may be surprised that we're moving the headerentirely to discuss the new license. We checked this carefully with theFoundation's lawyer and we believe this is the correct approach.Essentially, all code in the project is now made available by the LLVMproject under our new license, so you will see that the license headersinclude that license only. Some of our contributors have contributedcode under our old license, and accordingly, we have retained a copy ofour old license notice in the top-level files in each project andrepository.llvm-svn: 351636
[libFuzzer] initial implementation of -data_flow_trace. It parses the data flow trace and prints the summary, but doesn't use the information in any other way yetllvm-svn: 334058
[libFuzzer] DataFlow tracer now tags a subset of the input. A separate script merges traces from the subsetsllvm-svn: 333149
[libFuzzer] fix two off-by-ones (!!) in the data flow tracerllvm-svn: 333142
[libFuzzer] change the output format for the DataFlow tracerllvm-svn: 333122
[libFuzzer] Experimental data flow tracer for fuzz targets.Summary:Experimental data flow tracer for fuzz targets.Allows to tell which bytes of the input affect which functions of the fuzz target
[libFuzzer] Experimental data flow tracer for fuzz targets.Summary:Experimental data flow tracer for fuzz targets.Allows to tell which bytes of the input affect which functions of the fuzz target.We previously attempted to use DFSan directly in the libFuzzer process,and that didn't work nicely.Now we will try to collect the data flow information for the seed corpusin a separate process (using this tracer), and then use it in the regular libFuzzer runs.Reviewers: morehouse, pcc, Dor1sReviewed By: morehouse, Dor1sSubscribers: delcypher, #sanitizers, llvm-commitsDifferential Revision: https://reviews.llvm.org/D46666llvm-svn: 332029