Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | [libFuzzer] enable the failure-resistant merge by default (with ↵ | Kostya Serebryany | 2016-12-15 | 1 | -12/+20 | |
| | | | | | | trace-pc-guard only) llvm-svn: 289772 | |||||
* | [libFuzzer] Fix bug in detecting timeouts when input string is empty. | Marcos Pividori | 2016-12-13 | 3 | -0/+20 | |
| | | | | | | | | | | | | | | I added a new flag RunningCB to know if the Fuzzer's main thread is running the CB function, instead of using (!CurrentUnitSize). (!CurrentUnitSize) doesn't work properly. For example, in FuzzerLoop.cpp, inside ShuffleAndMinimize() function, we execute the callback with an empty string (size=0). Previous implementation failed to detect timeouts in that execution. Also, I add a regression test for that case. Differential Revision: https://reviews.llvm.org/D27433 llvm-svn: 289561 | |||||
* | [libFuzzer] don't require extra flags with -minimize_crash=1 (default to ↵ | Kostya Serebryany | 2016-12-13 | 1 | -4/+4 | |
| | | | | | | -max_total_time=600). Also respect exact_artifact_path when outputting the end result llvm-svn: 289506 | |||||
* | [libFuzzer] split one slow test into several, for more parallel testing | Kostya Serebryany | 2016-12-12 | 4 | -6/+7 | |
| | | | | llvm-svn: 289481 | |||||
* | [libFuzzer] make SimpleCmpTest a bit simpler to crack and more verbose | Kostya Serebryany | 2016-12-12 | 1 | -15/+26 | |
| | | | | llvm-svn: 289477 | |||||
* | [libFuzzer] build libFuzzer itself with asan | Kostya Serebryany | 2016-12-12 | 2 | -2/+3 | |
| | | | | llvm-svn: 289469 | |||||
* | [libFuzzer] respect -max_len during merge | Kostya Serebryany | 2016-12-12 | 1 | -0/+2 | |
| | | | | llvm-svn: 289467 | |||||
* | [libFuzzer] don't depend on time in a test | Kostya Serebryany | 2016-12-11 | 1 | -1/+1 | |
| | | | | llvm-svn: 289368 | |||||
* | [libFuzzer] test cleanup (3) | Kostya Serebryany | 2016-12-10 | 1 | -1/+0 | |
| | | | | llvm-svn: 289314 | |||||
* | [libFuzzer] test cleanup (2) | Kostya Serebryany | 2016-12-10 | 1 | -15/+0 | |
| | | | | llvm-svn: 289313 | |||||
* | [libFuzzer] test cleanup | Kostya Serebryany | 2016-12-10 | 8 | -60/+33 | |
| | | | | llvm-svn: 289312 | |||||
* | [libFuzzer] switch all libFuzzer tests to use ↵ | Kostya Serebryany | 2016-12-10 | 6 | -10/+6 | |
| | | | | | | -fsanitize-coverage=trace-pc-guard. Support for the previosly used instrumentation will be removed in the following changes llvm-svn: 289311 | |||||
* | [libFuzzer] implement crash-resistant merge ↵ | Kostya Serebryany | 2016-12-09 | 1 | -0/+135 | |
| | | | | | | (https://github.com/google/sanitizers/issues/722). This is a first experimental variant that needs some more testing, thus not yet adding a lit test (but there are unit tests). llvm-svn: 289166 | |||||
* | [libFuzzer] add a test for r288389 (-rss_limit_mb=0 means no limit). | Kostya Serebryany | 2016-12-01 | 1 | -0/+3 | |
| | | | | llvm-svn: 288392 | |||||
* | revert r288283 as it causes debug info (line numbers) to be lost in ↵ | Kostya Serebryany | 2016-12-01 | 1 | -1/+1 | |
| | | | | | | instrumented code. also revert r288299 which was a workaround for the problem. llvm-svn: 288300 | |||||
* | [libFuzzer] temporary disable a part of the test broken by r288283 | Kostya Serebryany | 2016-12-01 | 1 | -1/+1 | |
| | | | | llvm-svn: 288299 | |||||
* | [libFuzzer] extend -rss_limit_mb to crash instantly on a single malloc that ↵ | Kostya Serebryany | 2016-11-30 | 4 | -4/+37 | |
| | | | | | | exceeds the limit llvm-svn: 288281 | |||||
* | [libFuzzer] extend -print_coverage to print the comma-separated list of ↵ | Kostya Serebryany | 2016-11-30 | 1 | -0/+1 | |
| | | | | | | covered dirs. Note: the Windows stub for DirName is left unimplemented llvm-svn: 288276 | |||||
* | [libFuzzer] use less stack | Kostya Serebryany | 2016-11-12 | 1 | -0/+2 | |
| | | | | llvm-svn: 286689 | |||||
* | [libFuzzer] fix -error_exitcode=N, now with a test | Kostya Serebryany | 2016-11-03 | 1 | -0/+1 | |
| | | | | llvm-svn: 285958 | |||||
* | [libFuzzer] enable use_cmp by default | Kostya Serebryany | 2016-10-27 | 10 | -14/+16 | |
| | | | | llvm-svn: 285353 | |||||
* | [libFuzzer] add StandaloneFuzzTargetMain.c and a test for it | Kostya Serebryany | 2016-10-25 | 4 | -3/+21 | |
| | | | | llvm-svn: 285135 | |||||
* | [libFuzzer] when mutating based on CMP traces also try adding +/- 1 to the ↵ | Kostya Serebryany | 2016-10-25 | 1 | -0/+2 | |
| | | | | | | desired bytes. Add another test for use_cmp llvm-svn: 285109 | |||||
* | [libFuzzer] simplify the code for use_cmp, also use the position hint when ↵ | Kostya Serebryany | 2016-10-25 | 3 | -2/+6 | |
| | | | | | | available, add a test llvm-svn: 285049 | |||||
* | [libFuzzer] mutation: insert the size of the input in bytes as one of the ↵ | Kostya Serebryany | 2016-10-22 | 1 | -2/+6 | |
| | | | | | | ways to mutate a binary integer llvm-svn: 284909 | |||||
* | [libFuzzer] typo in a test | Kostya Serebryany | 2016-10-22 | 1 | -1/+1 | |
| | | | | llvm-svn: 284903 | |||||
* | [libFuzzer] add a test for asan's strict_string_checks=1 | Kostya Serebryany | 2016-10-22 | 3 | -0/+26 | |
| | | | | llvm-svn: 284902 | |||||
* | [libFuzzer] extend -print_coverage to also print uncovered lines, functions, ↵ | Kostya Serebryany | 2016-10-19 | 4 | -6/+24 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and files. Example of output: COVERAGE: COVERED: in DSO2(int) /pathto/DSO2.cpp:6 COVERED: in DSO2(int) /pathto/DSO2.cpp:8 COVERED: in DSO1(int) /pathto/DSO1.cpp:6 COVERED: in DSO1(int) /pathto/DSO1.cpp:8 COVERED: in LLVMFuzzerTestOneInput /pathto/DSOTestMain.cpp:16 COVERED: in LLVMFuzzerTestOneInput /pathto/DSOTestMain.cpp:19 COVERED: in LLVMFuzzerTestOneInput /pathto/DSOTestMain.cpp:25 COVERED: in LLVMFuzzerTestOneInput /pathto/DSOTestMain.cpp:26 MODULE_WITH_COVERAGE: /pathto/libLLVMFuzzer-DSO1.so UNCOVERED_LINE: in DSO1(int) /pathto/DSO1.cpp:9 UNCOVERED_FUNC: in Uncovered1() MODULE_WITH_COVERAGE: /pathto/libLLVMFuzzer-DSO2.so UNCOVERED_LINE: in DSO2(int) /pathto/DSO2.cpp:9 UNCOVERED_FUNC: in Uncovered2() MODULE_WITH_COVERAGE: /pathto/LLVMFuzzer-DSOTest UNCOVERED_LINE: in LLVMFuzzerTestOneInput /pathto/DSOTestMain.cpp:21 UNCOVERED_LINE: in LLVMFuzzerTestOneInput /pathto/DSOTestMain.cpp:27 UNCOVERED_FILE: /pathto/DSOTestExtra.cpp Several things are not perfect here: * we are using objdump+awk instead of sancov because sancov does not support DSOs yet. * this breaks in the presence of ASAN_OPTIONS=strip_path_prefix=... (need to implement another API to get the module name by PC) llvm-svn: 284554 | |||||
* | [libFuzzer] detect leaks after every run when executing fixed inputs ↵ | Kostya Serebryany | 2016-10-18 | 1 | -0/+3 | |
| | | | | | | (./fuzzer -runs=1000000 my-file) llvm-svn: 284514 | |||||
* | [libFuzzer] swap bytes in integers when handling CMP traces | Kostya Serebryany | 2016-10-15 | 2 | -0/+34 | |
| | | | | llvm-svn: 284301 | |||||
* | [libFuzzer] add -trace_cmp=1 (guiding mutations based on the observed CMP ↵ | Kostya Serebryany | 2016-10-14 | 1 | -1/+1 | |
| | | | | | | instructions). This is a reincarnation of the previously deleted -use_traces, but using a different approach for collecting traces. Still a toy, but at least it scales well. Also fix -merge in trace-pc-guard mode llvm-svn: 284273 | |||||
* | [libFuzzer] add -trace_malloc= flag | Kostya Serebryany | 2016-10-13 | 3 | -0/+38 | |
| | | | | llvm-svn: 284149 | |||||
* | [libFuzzer] implement value profile for switch, increase the size of the PCs ↵ | Kostya Serebryany | 2016-10-11 | 1 | -0/+2 | |
| | | | | | | array, make sure we don't overflow it llvm-svn: 283841 | |||||
* | [libFuzzer] add switch tests | Kostya Serebryany | 2016-10-11 | 2 | -0/+38 | |
| | | | | llvm-svn: 283840 | |||||
* | [libFuzzer] make a test less flaky | Kostya Serebryany | 2016-10-09 | 1 | -1/+0 | |
| | | | | llvm-svn: 283686 | |||||
* | [libFuzzer] when shrinking the corpus, delete evicted files previously ↵ | Kostya Serebryany | 2016-10-08 | 1 | -1/+1 | |
| | | | | | | created by the current process llvm-svn: 283682 | |||||
* | [libFuzzer] refactoring to make -shrink=1 work for value profile, added a test. | Kostya Serebryany | 2016-10-05 | 5 | -9/+17 | |
| | | | | llvm-svn: 283409 | |||||
* | [libFuzzer] add ShrinkValueProfileTest, move code around, NFC | Kostya Serebryany | 2016-10-05 | 5 | -3/+26 | |
| | | | | llvm-svn: 283286 | |||||
* | [libFuzzer] remove dfsan support and some related stale code. This is not ↵ | Kostya Serebryany | 2016-10-04 | 5 | -52/+0 | |
| | | | | | | being used and as is is pretty weak anyway llvm-svn: 283187 | |||||
* | [libFuzzer] remove unused option | Kostya Serebryany | 2016-09-30 | 3 | -14/+7 | |
| | | | | llvm-svn: 282971 | |||||
* | [libFuzzer] remove the code for -print_pcs=1 with the old coverage. It still ↵ | Kostya Serebryany | 2016-09-30 | 1 | -1/+0 | |
| | | | | | | works with the new one (trace-pc-guard) llvm-svn: 282831 | |||||
* | [libFuzzer] add -exit_on_src_pos to test libFuzzer itself, add a test script ↵ | Kostya Serebryany | 2016-09-27 | 2 | -1/+5 | |
| | | | | | | for RE2 that uses this flag llvm-svn: 282458 | |||||
* | [libFuzzer] fix merging with trace-pc-guard | Kostya Serebryany | 2016-09-23 | 3 | -4/+7 | |
| | | | | llvm-svn: 282224 | |||||
* | [libFuzzer] add 'features' to the corpus elements, allow mutations with Size ↵ | Kostya Serebryany | 2016-09-22 | 1 | -1/+1 | |
| | | | | | | > MaxSize, fix sha1 in corpus stats; various refactorings llvm-svn: 282129 | |||||
* | [libFuzzer] one more test | Kostya Serebryany | 2016-09-22 | 3 | -0/+30 | |
| | | | | llvm-svn: 282127 | |||||
* | [libFuzzer] add stats to the corpus; more refactoring | Kostya Serebryany | 2016-09-21 | 1 | -1/+2 | |
| | | | | llvm-svn: 282121 | |||||
* | [libFuzzer] more refactoring; don't compute sha1sum every time we mutate a ↵ | Kostya Serebryany | 2016-09-21 | 1 | -8/+5 | |
| | | | | | | unit from the corpus, use the stored one. llvm-svn: 282115 | |||||
* | [libFuzzer] more refactoring | Kostya Serebryany | 2016-09-21 | 1 | -2/+2 | |
| | | | | llvm-svn: 282113 | |||||
* | [libFuzzer] refactoring: split the large header into many; NFC | Kostya Serebryany | 2016-09-21 | 1 | -0/+3 | |
| | | | | llvm-svn: 282044 | |||||
* | [libFuzzer] refactoring: move the Corpus into a separate class; delete two ↵ | Kostya Serebryany | 2016-09-21 | 3 | -16/+3 | |
| | | | | | | unused experimental features llvm-svn: 282042 |