| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[Sanitizers] Remove OpenBSD support (new attempt) - Fixing VS compiler and other cases settings this time. Reviewers: dmajor, hans Reviewed By: hans Differential Revision: https://reviews.llvm.org/D89759 | 5 年前 | |
[libfuzzer] Disable failing DFSan-related tests These 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.zhao Differential Revision: https://reviews.llvm.org/D104568 | 4 年前 | |
[NFC][Py Reformat] Reformat python files in the rest of the dirs This is an ongoing series of commits that are reformatting our Python code. This catches the last of the python files to reformat. Since they where so few I bunched them together. Reformatting is done with black. If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run git checkout --ours <yourfile> and then reformat it with black. If you run into any problems, post to discourse about it and we will try to help. RFC Thread below: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Reviewed By: jhenderson, #libc, Mordante, sivachandra Differential Revision: https://reviews.llvm.org/D150784 | 3 年前 | |
[libFuzzer] fix missing close on opened file Summary: When running the standalone main on a large corpus, I eventually get a EMFILE error ("Too many open files"). Patch by Paul Chaignon Reviewers: kcc, vitalybuka Reviewed By: vitalybuka Subscribers: lebedev.ri, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D58622 llvm-svn: 354918 | 7 年前 | |
[compiler-rt] [test] [fuzzer] Don't pass msvc/clang-cl specific flags to mingw tools This fixes building the tests so that the tests can start executing (even if there still are lots of failures). Differential Revision: https://reviews.llvm.org/D147648 | 3 年前 | |
[CMake] Option to select C++ library for runtimes that use it We currently have an option to select C++ ABI and C++ library for tests but there are runtimes that use C++ library, specifically ORC and XRay, which aren't covered by existing options. This change introduces a new option to control the use of C++ libray for these runtimes. Ideally, this option should become the default way to select C++ library for all of compiler-rt replacing the existing options (the C++ ABI option could remain as a hidden internal option). Differential Revision: https://reviews.llvm.org/D128036 | 3 年前 | |
[crt][fuzzer] Fix up various numeric conversions Attempting to build a standalone libFuzzer in Fuchsia's default toolchain for the purpose of cross-compiling the unit tests revealed a number of not-quite-proper type conversions. Fuchsia's toolchain include -std=c++17 and -Werror, among others, leading to many errors like -Wshorten-64-to-32, -Wimplicit-float-conversion, etc. Most of these have been addressed by simply making the conversion explicit with a static_cast. These typically fell into one of two categories: 1) conversions between types where high precision isn't critical, e.g. the "energy" calculations for InputInfo, and 2) conversions where the values will never reach the bits being truncated, e.g. DftTimeInSeconds is not going to exceed 136 years. The major exception to this is the number of features: there are several places that treat features as size_t, and others as uint32_t. This change makes the decision to cap the features at 32 bits. The maximum value of a feature as produced by TracePC::CollectFeatures is roughly: (NumPCsInPCTables + ValueBitMap::kMapSizeInBits + ExtraCountersBegin() - ExtraCountersEnd() + log2(SIZE_MAX)) * 8 It's conceivable for extremely large targets and/or extra counters that this limit could be reached. This shouldn't break fuzzing, but it will cause certain features to collide and lower the fuzzers overall precision. To address this, this change adds a warning to TracePC::PrintModuleInfo about excessive feature size if it is detected, and recommends refactoring the fuzzer into several smaller ones. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D97992 | 5 年前 | |
[libFuzzer] replace Vector/Set with std::vector/std::set. The custom names are not required any more since we now build with a private version of libc++. Fix some of the 81+ character lines. Mechanical change, NFC expected. [libFuzzer] replace Vector/Set with std::vector/std::set. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D107374 | 4 年前 | |
[libfuzzer] avoid unneccessary copy Avoid some unneccessary copy Reviewed By: fmayer Differential Revision: https://reviews.llvm.org/D145758 | 3 年前 | |
[libfuzzer] avoid unneccessary auto-copy Avoid an unneccessary auto-copy Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D148902 | 3 年前 | |
Revert "Refactor mutation strategies into a standalone library" This reverts commit 361f742f168de0f0f256802a329c19d081615d0d. | 4 年前 | |
[libfuzzer] avoid unneccessary copy Avoid some unneccessary copy Reviewed By: fmayer Differential Revision: https://reviews.llvm.org/D145758 | 3 年前 | |
[libFuzzer] replace Vector/Set with std::vector/std::set. The custom names are not required any more since we now build with a private version of libc++. Fix some of the 81+ character lines. Mechanical change, NFC expected. [libFuzzer] replace Vector/Set with std::vector/std::set. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D107374 | 4 年前 | |
[libFuzzer] replace Vector/Set with std::vector/std::set. The custom names are not required any more since we now build with a private version of libc++. Fix some of the 81+ character lines. Mechanical change, NFC expected. [libFuzzer] replace Vector/Set with std::vector/std::set. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D107374 | 4 年前 | |
[libFuzzer] Fix two typos | 4 年前 | |
[fuzzer] Fix -Wunreachable-code-aggressive warning in FuzzerDriver.cpp Differential Revision: https://reviews.llvm.org/D148008 | 3 年前 | |
[libFuzzer] Always print DSO map on Fuchsia libFuzzer launch Fuchsia doesn't have /proc/id/maps, so it relies on the kernel logging system to provide the DSO map to be able to symbolize in the context of ASLR. The DSO map is logged automatically on Fuchsia when encountering a crash or writing to the sanitizer log for the first time in a process. There are several cases where libFuzzer doesn't encounter a crash, e.g. on timeouts, OOMs, and when configured to print new PCs as they become covered, to name a few. Therefore, this change always writes to the sanitizer log on startup to ensure the DSO map is available in the log. Author: aarongreen Differential Revision: https://reviews.llvm.org/D66233 llvm-svn: 372056 | 6 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. Summary: This patch separates platform related macros in lib/fuzzer/FuzzerDefs.h into lib/fuzzer/FuzzerPlatform.h, and use FuzzerPlatform.h where necessary. This separation helps when compiling libFuzzer's interceptor module (under review); an unnecessary include of standard headers (such as string.h) may produce conflicts/ambiguation with the interceptor's declarations/definitions of library functions, which complicates interceptor implementation. Reviewers: morehouse, hctim Reviewed By: morehouse Subscribers: krytarowski, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D83805 | 5 年前 | |
[Sanitizers] Remove OpenBSD support (new attempt) - Fixing VS compiler and other cases settings this time. Reviewers: dmajor, hans Reviewed By: hans Differential Revision: https://reviews.llvm.org/D89759 | 5 年前 | |
[libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. Summary: This patch separates platform related macros in lib/fuzzer/FuzzerDefs.h into lib/fuzzer/FuzzerPlatform.h, and use FuzzerPlatform.h where necessary. This separation helps when compiling libFuzzer's interceptor module (under review); an unnecessary include of standard headers (such as string.h) may produce conflicts/ambiguation with the interceptor's declarations/definitions of library functions, which complicates interceptor implementation. Reviewers: morehouse, hctim Reviewed By: morehouse Subscribers: krytarowski, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D83805 | 5 年前 | |
Enable extra coverage counters on Windows - Enable extra coverage counters on Windows. - Update extra_counters.test to run on Windows also. - Update TableLookupTest.cpp to include the required pragma/declspec for the extra coverage counters. Patch By: MichaelSquires Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D106676 | 4 年前 | |
[libFuzzer] Add missing include on Darwin. | 4 年前 | |
[fuzzer] Fix building on case sensitive mingw platforms Include windows.h with an all lowercase filename; Windows SDK headers aren't self consistent so they can't be used in an entirely case sensitive setting, and mingw headers use all lowercase names for such headers. This fixes building after 881faf41909b47376595e8d7bb9c9a109182d20b. | 4 年前 | |
Redistribute energy for Corpus I found that the initial corpus allocation of fork mode has certain defects. I designed a new initial corpus allocation strategy based on size grouping. This method can give more energy to the small seeds in the corpus and increase the throughput of the test. Fuzzbench data (glibfuzzer is -fork_corpus_groups=1): https://www.fuzzbench.com/reports/experimental/2021-08-05-parallel/index.html Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D105084 | 4 年前 | |
Adding missing colon Simple typo fix. The absence of this colon may be confusing and result in misinterpretation of the result. In normal libfuzzer mode, that colon is present. You can compare with: https://github.com/llvm/llvm-project/blob/aa0e9046c16bf27a8affbd903e2e3cad924a5217/compiler-rt/lib/fuzzer/FuzzerLoop.cpp#L356 Reviewed By: #sanitizers, vitalybuka Differential Revision: https://reviews.llvm.org/D142171 | 3 年前 | |
[libFuzzer] replace Vector/Set with std::vector/std::set. The custom names are not required any more since we now build with a private version of libc++. Fix some of the 81+ character lines. Mechanical change, NFC expected. [libFuzzer] replace Vector/Set with std::vector/std::set. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D107374 | 4 年前 | |
[fuzzer] Use puts() rather than printf() in CopyFileToErr() CopyFileToErr() uses Printf("%s", ...) which fails with a negative size on files >2Gb (Its path is through var-args wrappers to an unnecessary "%s" expansion and subject to int overflows) Using puts() in place of printf() bypasses this path and writes the string directly to stderr. This avoids the present loss of data when a crashed worker has generated >2Gb of output. rdar://99384640 Reviewed By: yln, rsundahl Differential Revision: https://reviews.llvm.org/D146189 | 3 年前 | |
[fuzzer] Use puts() rather than printf() in CopyFileToErr() CopyFileToErr() uses Printf("%s", ...) which fails with a negative size on files >2Gb (Its path is through var-args wrappers to an unnecessary "%s" expansion and subject to int overflows) Using puts() in place of printf() bypasses this path and writes the string directly to stderr. This avoids the present loss of data when a crashed worker has generated >2Gb of output. rdar://99384640 Reviewed By: yln, rsundahl Differential Revision: https://reviews.llvm.org/D146189 | 3 年前 | |
[libFuzzer] replace Vector/Set with std::vector/std::set. The custom names are not required any more since we now build with a private version of libc++. Fix some of the 81+ character lines. Mechanical change, NFC expected. [libFuzzer] replace Vector/Set with std::vector/std::set. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D107374 | 4 年前 | |
[libFuzzer] replace Vector/Set with std::vector/std::set. The custom names are not required any more since we now build with a private version of libc++. Fix some of the 81+ character lines. Mechanical change, NFC expected. [libFuzzer] replace Vector/Set with std::vector/std::set. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D107374 | 4 年前 | |
[fuzzer] Fix build on musl cstddef is needed for size_t definition. (Multiple headers can provide size_t but none of them exists.) Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D96213 | 4 年前 | |
[libFuzzer][Windows] Use dllexport for all declarations in FuzzerInterface.h Summary: Use dllexport for all declarations in FuzzerInterface.h Use it for clang even though clang supports default visibility attribute to prevent a warning from being thrown when LLVMFuzzerMutate is defined with dllexport. This makes FUZZER_INTERFACE_VISIBILITY (FuzzerInterface.h) consistent with ATTRIBUTE_INTERFACE (FuzzerDefs.h) when using clang on Windows. Reviewers: vitalybuka, morehouse Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D57305 llvm-svn: 352395 | 7 年前 | |
[libfuzzer] Fix build error due to out-of-line definition of 'Fuzzer' does not match any declaration in 'fuzzer::Fuzzer' (NFC) /data/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:138:9: error: out-of-line definition of 'Fuzzer' does not match any declaration in 'fuzzer::Fuzzer' Fuzzer::Fuzzer(UserCallback CB, InputCorpus &Corpus, MutationDispatcher &MD, ^~~~~~ /data/llvm-project/compiler-rt/lib/fuzzer/FuzzerInternal.h:35:10: note: type of 4th parameter of member declaration does not match definition ('fuzzer::FuzzingOptions &' vs 'const fuzzer::FuzzingOptions &') FuzzingOptions &Options); ^ 1 error generated. | 3 年前 | |
[libfuzzer] avoid unneccessary copy Avoid some unneccessary copy Reviewed By: fmayer Differential Revision: https://reviews.llvm.org/D145758 | 3 年前 | |
[libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. Summary: This patch separates platform related macros in lib/fuzzer/FuzzerDefs.h into lib/fuzzer/FuzzerPlatform.h, and use FuzzerPlatform.h where necessary. This separation helps when compiling libFuzzer's interceptor module (under review); an unnecessary include of standard headers (such as string.h) may produce conflicts/ambiguation with the interceptor's declarations/definitions of library functions, which complicates interceptor implementation. Reviewers: morehouse, hctim Reviewed By: morehouse Subscribers: krytarowski, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D83805 | 5 年前 | |
[libfuzzer] add test of cov file-id in control file There is test for ft file-id in control file, but no test for cov line. Without the test, a invalid cov file-id would cause crash. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D145672 | 3 年前 | |
Greedy set cover implementation of Merger::Merge Extend the existing single-pass algorithm for Merger::Merge with an algorithm that gives better results. This new implementation can be used with a new **set_cover_merge=1** flag. This greedy set cover implementation gives a substantially smaller final corpus (40%-80% less testcases) while preserving the same features/coverage. At the same time, the execution time penalty is not that significant (+50% for ~1M corpus files and far less for smaller corpora). These results were obtained by comparing several targets with varying size corpora. Change Merger::CrashResistantMergeInternalStep to collect all features from each file and not just unique ones. This is needed for the set cover algorithm to work correctly. The implementation of the algorithm in Merger::SetCoverMerge uses a bitvector to store features that are covered by a file while performing the pass. Collisions while indexing the bitvector are ignored similarly to the fuzzer. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D105284 | 4 年前 | |
[libfuzzer] avoid unneccessary copy Avoid some unneccessary copy Reviewed By: fmayer Differential Revision: https://reviews.llvm.org/D145758 | 3 年前 | |
[libFuzzer] replace Vector/Set with std::vector/std::set. The custom names are not required any more since we now build with a private version of libc++. Fix some of the 81+ character lines. Mechanical change, NFC expected. [libFuzzer] replace Vector/Set with std::vector/std::set. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D107374 | 4 年前 | |
Redistribute energy for Corpus I found that the initial corpus allocation of fork mode has certain defects. I designed a new initial corpus allocation strategy based on size grouping. This method can give more energy to the small seeds in the corpus and increase the throughput of the test. Fuzzbench data (glibfuzzer is -fork_corpus_groups=1): https://www.fuzzbench.com/reports/experimental/2021-08-05-parallel/index.html Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D105084 | 4 年前 | |
[Sw64] Add Sw64 target support for compiler-rt | 1 年前 | |
Revert "Refactor mutation strategies into a standalone library" This reverts commit 361f742f168de0f0f256802a329c19d081615d0d. | 4 年前 | |
[crt][fuzzer] Fix up various numeric conversions Attempting to build a standalone libFuzzer in Fuchsia's default toolchain for the purpose of cross-compiling the unit tests revealed a number of not-quite-proper type conversions. Fuchsia's toolchain include -std=c++17 and -Werror, among others, leading to many errors like -Wshorten-64-to-32, -Wimplicit-float-conversion, etc. Most of these have been addressed by simply making the conversion explicit with a static_cast. These typically fell into one of two categories: 1) conversions between types where high precision isn't critical, e.g. the "energy" calculations for InputInfo, and 2) conversions where the values will never reach the bits being truncated, e.g. DftTimeInSeconds is not going to exceed 136 years. The major exception to this is the number of features: there are several places that treat features as size_t, and others as uint32_t. This change makes the decision to cap the features at 32 bits. The maximum value of a feature as produced by TracePC::CollectFeatures is roughly: (NumPCsInPCTables + ValueBitMap::kMapSizeInBits + ExtraCountersBegin() - ExtraCountersEnd() + log2(SIZE_MAX)) * 8 It's conceivable for extremely large targets and/or extra counters that this limit could be reached. This shouldn't break fuzzing, but it will cause certain features to collide and lower the fuzzers overall precision. To address this, this change adds a warning to TracePC::PrintModuleInfo about excessive feature size if it is detected, and recommends refactoring the fuzzer into several smaller ones. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D97992 | 5 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[Sw64] Add Sw64 target support for compiler-rt | 1 年前 | |
[libFuzzer] replace Vector/Set with std::vector/std::set. The custom names are not required any more since we now build with a private version of libc++. Fix some of the 81+ character lines. Mechanical change, NFC expected. [libFuzzer] replace Vector/Set with std::vector/std::set. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D107374 | 4 年前 | |
[fuzzer] Platfom specific version of PageSize | 3 年前 | |
[fuzzer] Don't hard-code page size in FuzzerUtil.h Don't hard code the page in FuzzerUtil.h, this breaks on e.g. LoongArch which defaults to a 16KiB page size. Reviewed By: #sanitizers, vitalybuka Differential Revision: https://reviews.llvm.org/D140607 | 3 年前 | |
[libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. Summary: This patch separates platform related macros in lib/fuzzer/FuzzerDefs.h into lib/fuzzer/FuzzerPlatform.h, and use FuzzerPlatform.h where necessary. This separation helps when compiling libFuzzer's interceptor module (under review); an unnecessary include of standard headers (such as string.h) may produce conflicts/ambiguation with the interceptor's declarations/definitions of library functions, which complicates interceptor implementation. Reviewers: morehouse, hctim Reviewed By: morehouse Subscribers: krytarowski, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D83805 | 5 年前 | |
[fuzzer][fuchsia] Support RISC-V Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D153082 | 3 年前 | |
[Libfuzzer] Include signal.h for SIGINT Or else compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp fails to compile on FreeBSD. | 3 年前 | |
[fuzzer] Platfom specific version of PageSize | 3 年前 | |
[fuzzer] Platfom specific version of PageSize | 3 年前 | |
[libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. Summary: This patch separates platform related macros in lib/fuzzer/FuzzerDefs.h into lib/fuzzer/FuzzerPlatform.h, and use FuzzerPlatform.h where necessary. This separation helps when compiling libFuzzer's interceptor module (under review); an unnecessary include of standard headers (such as string.h) may produce conflicts/ambiguation with the interceptor's declarations/definitions of library functions, which complicates interceptor implementation. Reviewers: morehouse, hctim Reviewed By: morehouse Subscribers: krytarowski, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D83805 | 5 年前 | |
[libFuzzer] better README.txt llvm-svn: 311418 | 8 年前 | |
Revert "Refactor mutation strategies into a standalone library" This reverts commit 361f742f168de0f0f256802a329c19d081615d0d. | 4 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 7 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 6 年前 | ||
| 7 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 7 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 1 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 7 年前 | ||
| 1 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 8 年前 | ||
| 4 年前 |