Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | [libFuzzer] don't require seed in fuzzer::Mutate, instead use the global ↵ | Kostya Serebryany | 2016-02-13 | 1 | -4/+12 | |
| | | | | | | Fuzzer object for fuzzer::Mutate. This makes custom mutators fast llvm-svn: 260810 | |||||
* | [libFuzzer] get rid of UserSuppliedFuzzer; NFC | Kostya Serebryany | 2016-02-13 | 3 | -3/+4 | |
| | | | | llvm-svn: 260798 | |||||
* | [libFuzzer] simplify the code around Random. NFC | Kostya Serebryany | 2016-02-13 | 1 | -11/+11 | |
| | | | | llvm-svn: 260797 | |||||
* | [libFuzzer] remove UserSuppliedFuzzer from the interface (it was a bad idea). | Kostya Serebryany | 2016-02-13 | 3 | -54/+0 | |
| | | | | llvm-svn: 260796 | |||||
* | [libFuzzer] provide a plain C interface for custom mutators (experimental) | Kostya Serebryany | 2016-02-13 | 3 | -0/+32 | |
| | | | | llvm-svn: 260794 | |||||
* | [libFuzzer] make -runs=N flag also affect the simple runner (will execute ↵ | Kostya Serebryany | 2016-02-12 | 3 | -1/+23 | |
| | | | | | | every input N times) llvm-svn: 260649 | |||||
* | [libFuzzer] hot fix a test | Kostya Serebryany | 2016-02-04 | 1 | -1/+1 | |
| | | | | llvm-svn: 259732 | |||||
* | [libFuzzer] don't write the test unit when a leak is detected (since we ↵ | Kostya Serebryany | 2016-02-04 | 3 | -0/+15 | |
| | | | | | | don't know which unit causes the leak) llvm-svn: 259731 | |||||
* | [libFuzzer] allow passing 1 or more files as individual inputs | Kostya Serebryany | 2016-02-02 | 1 | -0/+12 | |
| | | | | llvm-svn: 259459 | |||||
* | [libFuzzer] fail if the corpus dir does not exist | Kostya Serebryany | 2016-02-02 | 1 | -0/+3 | |
| | | | | llvm-svn: 259454 | |||||
* | [libFuzzer] add -timeout_exitcode option | Kostya Serebryany | 2016-01-29 | 1 | -0/+1 | |
| | | | | llvm-svn: 259265 | |||||
* | [libFuzzer] re-enable test for -abort_on_timeout=1, this time protecting ↵ | Kostya Serebryany | 2016-01-29 | 1 | -1/+1 | |
| | | | | | | from ASAN_OPTIONS set outside llvm-svn: 259263 | |||||
* | Temporary disable broken fuzzer/timeout tests. | Ivan Krasin | 2016-01-25 | 1 | -1/+1 | |
| | | | | | | | | Reviewers: kcc Differential Revision: http://reviews.llvm.org/D16543 llvm-svn: 258702 | |||||
* | [libFuzzer] add -abort_on_timeout option | Kostya Serebryany | 2016-01-23 | 1 | -0/+1 | |
| | | | | llvm-svn: 258631 | |||||
* | Use std::piecewise_constant_distribution instead of ad-hoc binary search. | Ivan Krasin | 2016-01-22 | 1 | -1/+21 | |
| | | | | | | | | | | | | | | | Summary: Fix the issue with the most recently discovered unit receiving much less attention. Note: this is the second attempt (prev: r258473). Now, libc++ build is fixed. Reviewers: aizatsky, kcc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16487 llvm-svn: 258571 | |||||
* | Revert r258473 as it's breaking the build with libc++ | Ivan Krasin | 2016-01-22 | 1 | -21/+1 | |
| | | | | | | | | Reviewers: kcc Differential Revision: http://reviews.llvm.org/D16441 llvm-svn: 258479 | |||||
* | Use std::piecewise_constant_distribution instead of ad-hoc binary search. | Ivan Krasin | 2016-01-22 | 1 | -1/+21 | |
| | | | | | | | | | | | | | | | | | | Summary: Fix the issue with the most recently discovered unit receiving much less attention. Note: I had to change the seed for one test to make it pass. Alternatively, the number of runs could be increased. I believe that the average time of 'foo' discovery is not increased, just seed=1 was particularly convenient for the previous PRNG scheme used. Reviewers: aizatsky, kcc Subscribers: llvm-commits, kcc Differential Revision: http://reviews.llvm.org/D16419 llvm-svn: 258473 | |||||
* | [libFuzzer] use std::mt19937 for generating random numbers by default. Fix ↵ | Kostya Serebryany | 2016-01-19 | 1 | -0/+3 | |
| | | | | | | MyStoll to handle negative values. Use std::any_of instead of std::find_if llvm-svn: 258178 | |||||
* | [libFuzzer] replace vector with a simpler data structure in the Dictionaries ↵ | Kostya Serebryany | 2016-01-16 | 1 | -6/+6 | |
| | | | | | | to avoid memory allocations on hot path llvm-svn: 257985 | |||||
* | [libFuzzer] introduce LLVMFuzzerInitialize | Kostya Serebryany | 2016-01-16 | 3 | -0/+26 | |
| | | | | llvm-svn: 257980 | |||||
* | [libFuzzer] do mutations based on memcmp/strcmp interceptors under a ↵ | Kostya Serebryany | 2016-01-15 | 1 | -7/+7 | |
| | | | | | | separate flag (-use_memcmp, default=1) llvm-svn: 257873 | |||||
* | [libFuzzer] suggest a dictionary to the user of some of the trace-based ↵ | Kostya Serebryany | 2016-01-14 | 6 | -3/+30 | |
| | | | | | | dictionary entries were successful llvm-svn: 257736 | |||||
* | [libFuzzer] make sure we find buffer overflow in the input buffer. ↵ | Kostya Serebryany | 2016-01-13 | 3 | -0/+24 | |
| | | | | | | Previously, re-using the same vector object was hiding buffer overflows (unless we used annotated vector) llvm-svn: 257701 | |||||
* | [libFuzzer] change the way trace-based mutations are applied. Instead of a ↵ | Kostya Serebryany | 2016-01-09 | 1 | -3/+4 | |
| | | | | | | custom code just rely on the automatically created dictionary llvm-svn: 257248 | |||||
* | [libFuzzer] don't limit memcmp tracing with 8 bytes | Kostya Serebryany | 2016-01-09 | 2 | -5/+14 | |
| | | | | llvm-svn: 257245 | |||||
* | [libFuzzer] add a position hint to the dictionary-based mutator | Kostya Serebryany | 2016-01-07 | 3 | -8/+39 | |
| | | | | llvm-svn: 257013 | |||||
* | [libfuzzer] print_new_cov_pcs experimental option. | Mike Aizatsky | 2016-01-06 | 1 | -0/+6 | |
| | | | | | | Differential Revision: http://reviews.llvm.org/D15901 llvm-svn: 256882 | |||||
* | [libFuzzer] make trace-based fuzzing not crash in presence of threads | Kostya Serebryany | 2016-01-06 | 3 | -0/+31 | |
| | | | | llvm-svn: 256876 | |||||
* | [libFuzzer] split the tests to run them in parallel, remove one redundant test | Kostya Serebryany | 2015-12-19 | 6 | -66/+41 | |
| | | | | llvm-svn: 256085 | |||||
* | [libFuzzer] make CrossOver just one of the other mutations | Kostya Serebryany | 2015-12-19 | 2 | -7/+7 | |
| | | | | llvm-svn: 256081 | |||||
* | [LibFuzzer] Introducing FUZZER_FLAG_UNSIGNED and using it for seeding. | Mike Aizatsky | 2015-12-10 | 1 | -2/+2 | |
| | | | | | | | | Differential Revision: http://reviews.llvm.org/D15339 done llvm-svn: 255296 | |||||
* | [libFuzzer] compute base64 in-process instead of using an external lib. ↵ | Kostya Serebryany | 2015-12-04 | 1 | -0/+13 | |
| | | | | | | Since libFuzzer should not depend on anything, just re-implement base64 encoder. PR25746 llvm-svn: 254784 | |||||
* | Libfuzzer: do not pass null into user function | Mike Aizatsky | 2015-12-02 | 1 | -0/+2 | |
| | | | | | | Differential Revision: http://reviews.llvm.org/D15098 llvm-svn: 254558 | |||||
* | [libFuzzer] add a test that is built with -fsanitize-coverage=trace-bb | Kostya Serebryany | 2015-12-02 | 2 | -0/+22 | |
| | | | | llvm-svn: 254484 | |||||
* | [libFuzzer] add a flag -exact_artifact_path | Kostya Serebryany | 2015-11-25 | 1 | -0/+2 | |
| | | | | llvm-svn: 254100 | |||||
* | [libFuzzer] experimental flag -drill (another search heuristic; Mike ↵ | Kostya Serebryany | 2015-11-12 | 1 | -1/+5 | |
| | | | | | | Aizatsky's idea) llvm-svn: 252838 | |||||
* | [libFuzzer] add UninstrumentedTest.cpp (missing from a previous commit) | Kostya Serebryany | 2015-11-10 | 1 | -0/+8 | |
| | | | | llvm-svn: 252658 | |||||
* | [libFuzzer] make libFuzzer link if there is no sanitizer coverage ↵ | Kostya Serebryany | 2015-11-09 | 3 | -0/+27 | |
| | | | | | | instrumentation (it will fail at start-up time) llvm-svn: 252533 | |||||
* | [libFuzzer] add -merge flag to merge corpora | Kostya Serebryany | 2015-10-24 | 1 | -0/+29 | |
| | | | | llvm-svn: 251168 | |||||
* | [libFuzzer] use the indirect caller-callee counter as an independent search ↵ | Kostya Serebryany | 2015-10-22 | 3 | -0/+60 | |
| | | | | | | heuristic llvm-svn: 251078 | |||||
* | [libFuzzer] remove the deprecated 'tokens' feature | Kostya Serebryany | 2015-10-22 | 3 | -28/+0 | |
| | | | | llvm-svn: 251069 | |||||
* | [libFuzzer] print a stack trace on timeout | Kostya Serebryany | 2015-10-16 | 1 | -0/+5 | |
| | | | | llvm-svn: 250571 | |||||
* | [libFuzzer] When -test_single_input crashes the test it is not necessary to ↵ | Kostya Serebryany | 2015-10-16 | 1 | -1/+6 | |
| | | | | | | write crash-file because input is already known to the user. Patch by Mike Aizatsky llvm-svn: 250564 | |||||
* | [libFuzzer] add -artifact_prefix flag | Kostya Serebryany | 2015-10-09 | 1 | -3/+5 | |
| | | | | llvm-svn: 249807 | |||||
* | [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return ↵ | Kostya Serebryany | 2015-10-02 | 16 | -23/+39 | |
| | | | | | | int instead of void. The actual return value is not *yet* used (and expected to be 0). This change is API breaking, so the fuzzers will need to be updated. llvm-svn: 249214 | |||||
* | [libFuzzer] remove experimental flag and functionality | Kostya Serebryany | 2015-10-02 | 1 | -2/+2 | |
| | | | | llvm-svn: 249194 | |||||
* | [libFuzzer] add a flag -max_total_time | Kostya Serebryany | 2015-10-02 | 1 | -0/+3 | |
| | | | | llvm-svn: 249181 | |||||
* | [LibFuzzer] test_single_input option to run a single test case. | Ivan Krasin | 2015-10-01 | 2 | -0/+2 | |
| | | | | | | | | | | -test_single_input flag specifies a file name with test data. Review URL: http://reviews.llvm.org/D13359 Patch by Mike Aizatsky! llvm-svn: 249096 | |||||
* | [libFuzzer]Add a test for defeating a hash sum. | Ivan Krasin | 2015-09-08 | 3 | -0/+40 | |
| | | | | | | | | | | | | | | | | | Summary: Add a test for a data followed by 4-byte hash value. I use a slightly modified Jenkins hash function, as described in https://en.wikipedia.org/wiki/Jenkins_hash_function The modification is to ensure that hash(zeros) != 0. Reviewers: kcc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12648 llvm-svn: 247076 | |||||
* | [libFuzzer] add one more mutator: Mutate_ChangeASCIIInteger | Kostya Serebryany | 2015-09-08 | 1 | -0/+31 | |
| | | | | llvm-svn: 247027 |