Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [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 | ||||
* | [libFuzzer] actually make the dictionaries work (+docs) | Kostya Serebryany | 2015-09-04 | 5 | -10/+103 |
| | | | | llvm-svn: 246825 | ||||
* | [libFuzzer] refactor the mutation functions so that they are now methods of ↵ | Kostya Serebryany | 2015-09-03 | 1 | -19/+25 |
| | | | | | | a class. NFC llvm-svn: 246808 | ||||
* | [libFuzzer] adding a parser for AFL-style dictionaries + tests. | Kostya Serebryany | 2015-09-03 | 1 | -0/+48 |
| | | | | llvm-svn: 246800 | ||||
* | [libFuzzer] deprecate the -tokens flag. This was a bad idea because the ↵ | Kostya Serebryany | 2015-09-02 | 1 | -1/+1 |
| | | | | | | corpus with this flag contains encrypted inputs, not the real inputs, which complicates interoperation with other fuzzers. Instead we'll need to implement AFL dictionary support llvm-svn: 246734 | ||||
* | [libFuzzer] add two flags, -tbm_depth and -tbm_width to control how the ↵ | Kostya Serebryany | 2015-08-12 | 2 | -4/+4 |
| | | | | | | trace-based-mutations are applied llvm-svn: 244712 | ||||
* | [libFuzzer] move the mutators to public interface so that custom mutators ↵ | Kostya Serebryany | 2015-08-06 | 1 | -2/+2 |
| | | | | | | may reuse these functions directly llvm-svn: 244250 | ||||
* | [libFuzzer] add one more mutation strategy: byte shuffling | Kostya Serebryany | 2015-08-06 | 1 | -0/+23 |
| | | | | llvm-svn: 244188 | ||||
* | [libFuzzer] add a missing test file | Kostya Serebryany | 2015-08-05 | 1 | -0/+28 |
| | | | | llvm-svn: 244151 | ||||
* | [libFuzzer] use data-flow feedback from strcmp | Kostya Serebryany | 2015-08-05 | 3 | -0/+8 |
| | | | | llvm-svn: 244084 | ||||
* | [libFuzzer] more refactoring of the Mutator and adding tests to it | Kostya Serebryany | 2015-08-01 | 1 | -12/+98 |
| | | | | llvm-svn: 243818 | ||||
* | [libFuzzer] start refactoring the Mutator and adding tests to it | Kostya Serebryany | 2015-08-01 | 2 | -6/+44 |
| | | | | llvm-svn: 243817 | ||||
* | [libFuzzer] make sure that 2-byte arguments of switch() are handled properly | Kostya Serebryany | 2015-07-31 | 2 | -3/+22 |
| | | | | llvm-svn: 243781 | ||||
* | [libFuzzer] support switch interception in dfsan mode | Kostya Serebryany | 2015-07-31 | 3 | -2/+7 |
| | | | | llvm-svn: 243760 | ||||
* | [libFuzzer] trace switch statements and apply mutations based on the ↵ | Kostya Serebryany | 2015-07-31 | 3 | -0/+39 |
| | | | | | | expected case values llvm-svn: 243726 | ||||
* | [libFuzzer] fix the strncmp interceptor -- it should respect short strings. | Kostya Serebryany | 2015-07-30 | 2 | -1/+5 |
| | | | | llvm-svn: 243691 | ||||
* | [libFuzzer] implement strncmp hook for data-flow-guided fuzzing (w/ and w/o ↵ | Kostya Serebryany | 2015-07-30 | 5 | -2/+31 |
| | | | | | | dfsan), add a test llvm-svn: 243611 | ||||
* | [libFuzzer] implement memcmp hook for data-flow-guided fuzzing (w/o dfsan), ↵ | Kostya Serebryany | 2015-07-30 | 4 | -3/+12 |
| | | | | | | extend the memcmp fuzzer test llvm-svn: 243603 | ||||
* | [libFuzzer] ensure that the dfsan tracing hooks actually run (using ↵ | Kostya Serebryany | 2015-07-28 | 1 | -0/+3 |
| | | | | | | -verbosity=3 in tests) llvm-svn: 243365 | ||||
* | [libFuzzer] allow users to supply their own implementation of rand | Kostya Serebryany | 2015-07-24 | 2 | -2/+6 |
| | | | | llvm-svn: 243078 | ||||
* | [libFuzzer] dump long running units to disk | Kostya Serebryany | 2015-07-23 | 1 | -3/+3 |
| | | | | llvm-svn: 243031 | ||||
* | [Fuzzer] Rely on $PATH expansion instead of hardcoding paths in tests. NFC. | Alexey Samsonov | 2015-07-21 | 3 | -14/+15 |
| | | | | llvm-svn: 242851 | ||||
* | [Fuzzer] Clearly separate regular and DFSan tests. NFC. | Alexey Samsonov | 2015-07-21 | 5 | -7/+10 |
| | | | | llvm-svn: 242850 | ||||
* | [lib/Fuzzer] remove -use_coverage_pairs=1, an experimental feature that is ↵ | Kostya Serebryany | 2015-05-22 | 1 | -1/+1 |
| | | | | | | unlikely to ever scale llvm-svn: 238063 | ||||
* | [lib/Fuzzer] extend the fuzzer interface to allow user-supplied mutators | Kostya Serebryany | 2015-05-22 | 4 | -2/+69 |
| | | | | llvm-svn: 238059 | ||||
* | [lib/Fuzzer] change the meaning of -timeout flag: now timeout is applied to ↵ | Kostya Serebryany | 2015-05-19 | 2 | -1/+5 |
| | | | | | | every unit of work separately llvm-svn: 237735 | ||||
* | [lib/Fuzzer] Add SHA1 implementation from public domain. | Kostya Serebryany | 2015-05-14 | 1 | -0/+8 |
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This adds a SHA1 implementation taken from public domain code. The change is trivial, but as it involves third-party code I'd like a second pair of eyes before commit. LibFuzzer can not use SHA1 from openssl because openssl may not be available and because we may be fuzzing openssl itself. Using sha1sum via a pipe is too slow. Test Plan: n/a Reviewers: chandlerc Reviewed By: chandlerc Subscribers: majnemer, llvm-commits Differential Revision: http://reviews.llvm.org/D9733 llvm-svn: 237400 | ||||
* | [lib/Fuzzer] remove the -dfsan=1 flag, just use -use_traces=1 (w/ or w/o dfsan) | Kostya Serebryany | 2015-05-12 | 1 | -2/+2 |
| | | | | llvm-svn: 237083 | ||||
* | [lib/Fuzzer] add a trace-based mutatation logic. Same idea as with ↵ | Kostya Serebryany | 2015-05-11 | 1 | -0/+1 |
| | | | | | | DFSan-based mutator, but instead of relying on taint tracking, try to find the data directly in the input. More (logic and comments) to go. llvm-svn: 237043 | ||||
* | [lib/Fuzzer] build tests that work well with dfsan also w/o dfsan | Kostya Serebryany | 2015-05-08 | 5 | -10/+12 |
| | | | | llvm-svn: 236909 | ||||
* | [lib/Fuzzer] use -fsanitize-coverage=trace-cmp when building LLVM with ↵ | Kostya Serebryany | 2015-05-08 | 1 | -1/+1 |
| | | | | | | LLVM_USE_SANITIZE_COVERAGE; in lib/Fuzzer try to reload the corpus to pick up new units from other processes llvm-svn: 236906 | ||||
* | Update CMake flags, LibFuzzer comments and docs for new -fsanitize-coverage= ↵ | Alexey Samsonov | 2015-05-07 | 1 | -1/+1 |
| | | | | | | flags. llvm-svn: 236797 | ||||
* | [lib/Fuzzer] change the way we use taint information for fuzzing. Now, we ↵ | Kostya Serebryany | 2015-05-07 | 1 | -2/+2 |
| | | | | | | run a single unit and collect suggested mutations based on tracing+taint data, then apply the suggested mutations one by one. The previous scheme was slower and more complex. llvm-svn: 236772 | ||||
* | [lib/Fuzzer] add dfsan_weak_hook_memcmp, enable the test that uses it, ↵ | Kostya Serebryany | 2015-05-07 | 5 | -17/+20 |
| | | | | | | simplify the test runner llvm-svn: 236683 | ||||
* | [lib/Fuzzer] remove dfsan_fuzzer_abi.list -- its contents are now moved to ↵ | Kostya Serebryany | 2015-05-06 | 1 | -4/+1 |
| | | | | | | dfsan proper llvm-svn: 236659 | ||||
* | [lib/Fuzzer] add a fuzzer test for memcmp (does not work yet) | Kostya Serebryany | 2015-05-06 | 2 | -0/+9 |
| | | | | llvm-svn: 236656 |