Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [libFuzzer] make OOM-handling more portable. Instead of sending a signal to ↵ | Kostya Serebryany | 2016-05-27 | 1 | -43/+19 |
| | | | | | | the main fuzzing thread, print the message in the getrusage thread and exit. llvm-svn: 270945 | ||||
* | [libFuzzer] more refactoring: make sure CurrentUnitData is awlays a valid ↵ | Kostya Serebryany | 2016-05-27 | 1 | -12/+20 |
| | | | | | | pointer to read from llvm-svn: 270942 | ||||
* | [libFuzzer] more refactoring around CurrentUnit. Also add a threading test ↵ | Kostya Serebryany | 2016-05-26 | 1 | -18/+34 |
| | | | | | | on which we currently have a race (when reporting bugs from multiple threads) llvm-svn: 270929 | ||||
* | [libFuzzer] refactor: hide CurrentUnitData inside an interface function. NFC | Kostya Serebryany | 2016-05-26 | 1 | -0/+3 |
| | | | | llvm-svn: 270922 | ||||
* | [libFuzzer] when there is a leak in the existing corpus report the ↵ | Kostya Serebryany | 2016-05-26 | 1 | -20/+9 |
| | | | | | | reproducer properly llvm-svn: 270905 | ||||
* | [libFuzzer] reimplement the way we do -only_ascii to allow more 'const' in ↵ | Kostya Serebryany | 2016-05-26 | 1 | -5/+6 |
| | | | | | | function declarations. Add a test for -only_ascii. NFC intended llvm-svn: 270900 | ||||
* | [libFuzzer] print stats if we crash on empty input | Kostya Serebryany | 2016-05-25 | 1 | -3/+4 |
| | | | | llvm-svn: 270639 | ||||
* | [libfuzzer] Trying random unit prefixes during corpus load. | Mike Aizatsky | 2016-05-24 | 1 | -0/+43 |
| | | | | | | Differential Revision: http://reviews.llvm.org/D20301 llvm-svn: 270632 | ||||
* | [LibFuzzer] | Dan Liew | 2016-05-19 | 1 | -2/+12 |
| | | | | | | | | | | | | | | | | | | Work around crashes in ``__sanitizer_malloc_hook()`` under Mac OSX. Under Mac OSX we intercept calls to malloc before thread local storage is initialised leading to a crash when accessing ``AllocTracer``. To workaround this ``AllocTracer`` is only accessed in the hook under Linux. For symmetry ``__sanitizer_free_hook()`` is also modified in the same way. To support this change a set of new macros LIBFUZZER_LINUX and LIBFUZZER_APPLE has been defined which can be used to check the target being compiled for. Differential Revision: http://reviews.llvm.org/D20402 llvm-svn: 270145 | ||||
* | [libFuzzer] do the merge faster and a bit less precise | Kostya Serebryany | 2016-05-13 | 1 | -1/+2 |
| | | | | llvm-svn: 269497 | ||||
* | [libFuzzer] simplify FuzzerInterface.h | Kostya Serebryany | 2016-05-13 | 1 | -5/+8 |
| | | | | llvm-svn: 269448 | ||||
* | [libfuzzer] Refactoring coverage state-management code. | Mike Aizatsky | 2016-05-10 | 1 | -71/+111 |
| | | | | | | | | | It is now less state-dependent and will allow easier comparing of coverages of different units. Differential Revision: http://reviews.llvm.org/D20085 llvm-svn: 269140 | ||||
* | [libFuzzer] enhance -rss_limit_mb and enable by default. Now it will print ↵ | Kostya Serebryany | 2016-05-06 | 1 | -9/+21 |
| | | | | | | the OOM reproducer. llvm-svn: 268821 | ||||
* | [libFuzzer] add exeprimental -rss_limit_mb flag to fight against OOMs | Kostya Serebryany | 2016-05-06 | 1 | -0/+11 |
| | | | | llvm-svn: 268807 | ||||
* | [libFuzzer] disable leak detection if we have tried it for 1000 times w/o ↵ | Kostya Serebryany | 2016-04-27 | 1 | -0/+9 |
| | | | | | | finding a leak llvm-svn: 267770 | ||||
* | [libFuzzer] remove dead code | Kostya Serebryany | 2016-04-25 | 1 | -4/+2 |
| | | | | llvm-svn: 267455 | ||||
* | [libFuzzer] added -detect_leaks flag (0 by default for now). When enabled, ↵ | Kostya Serebryany | 2016-04-20 | 1 | -1/+74 |
| | | | | | | it will help finding leaks while fuzzing llvm-svn: 266838 | ||||
* | [libFuzzer] try to print correct time in seconds when reporting a timeout. ↵ | Kostya Serebryany | 2016-04-18 | 1 | -3/+3 |
| | | | | | | Don't report timeouts while still loading the corpus. llvm-svn: 266693 | ||||
* | [libfuzzer] defensive assert | Mike Aizatsky | 2016-04-08 | 1 | -1/+2 |
| | | | | llvm-svn: 265866 | ||||
* | [libFuzzer] don't report memory leaks if we are dying due to a timeout (just ↵ | Kostya Serebryany | 2016-03-24 | 1 | -1/+1 |
| | | | | | | use _Exit instead of exit in the timeout callback) llvm-svn: 264237 | ||||
* | [Fuzzer] Guard no_sanitize_memory attributes behind __has_feature. | Benjamin Kramer | 2016-03-18 | 1 | -2/+10 |
| | | | | | | Otherwise GCC fails to build it because it doesn't know the attribute. llvm-svn: 263787 | ||||
* | [libFuzzer] improve -merge functionality | Kostya Serebryany | 2016-03-18 | 1 | -51/+75 |
| | | | | llvm-svn: 263769 | ||||
* | [libFuzzer] deprecate several flags | Kostya Serebryany | 2016-03-17 | 1 | -12/+0 |
| | | | | llvm-svn: 263739 | ||||
* | [libFuzzer] add __attribute__((no_sanitize_memory)) to two functions that ↵ | Kostya Serebryany | 2016-03-17 | 1 | -0/+2 |
| | | | | | | may be called from signal handler(s) or from msan. This will hopefully avoid msan false reports which I can't reproduce llvm-svn: 263737 | ||||
* | [libFuzzer] try to use max_len based on the items of the corpus instead of ↵ | Kostya Serebryany | 2016-03-12 | 1 | -7/+23 |
| | | | | | | blindly defaulting to 64 bytes. llvm-svn: 263323 | ||||
* | [libFuzzer] when interrupted, call _Exit() instead of exit() | Kostya Serebryany | 2016-03-03 | 1 | -1/+1 |
| | | | | llvm-svn: 262667 | ||||
* | [libFuzzer] deprecate exit_on_first flag | Kostya Serebryany | 2016-03-01 | 1 | -2/+0 |
| | | | | llvm-svn: 262417 | ||||
* | [libFuzzer] add generic signal handlers so that libFuzzer can report at ↵ | Kostya Serebryany | 2016-03-01 | 1 | -12/+38 |
| | | | | | | least something if ASan is not handlig the signals for us. Remove abort_on_timeout flag. llvm-svn: 262415 | ||||
* | [libFuzzer] add -print_final_stats=1 flag | Kostya Serebryany | 2016-02-26 | 1 | -3/+14 |
| | | | | llvm-svn: 262084 | ||||
* | [libFuzzer] initial implementation of path coverage based on ↵ | Kostya Serebryany | 2016-02-26 | 1 | -0/+8 |
| | | | | | | -fsanitize-coverage=trace-pc. This does not scale well yet, but already cracks FullCoverageSetTest in seconds llvm-svn: 262073 | ||||
* | [libFuzzer] only read MaxLen bytes from every file in the corpus to speedup ↵ | Kostya Serebryany | 2016-02-18 | 1 | -3/+3 |
| | | | | | | loading the corpus llvm-svn: 261267 | ||||
* | [libFuzzer] don't timeout when loading the corpus. Be a bit more verbose ↵ | Kostya Serebryany | 2016-02-17 | 1 | -0/+2 |
| | | | | | | when loading large corpus. llvm-svn: 261143 | ||||
* | [libFuzzer] remove std::vector operations from hot paths, NFC | Kostya Serebryany | 2016-02-13 | 1 | -23/+24 |
| | | | | llvm-svn: 260829 | ||||
* | [libFuzzer] don't require seed in fuzzer::Mutate, instead use the global ↵ | Kostya Serebryany | 2016-02-13 | 1 | -0/+5 |
| | | | | | | Fuzzer object for fuzzer::Mutate. This makes custom mutators fast llvm-svn: 260810 | ||||
* | [libFuzzer] get rid of UserSuppliedFuzzer; NFC | Kostya Serebryany | 2016-02-13 | 1 | -13/+14 |
| | | | | llvm-svn: 260798 | ||||
* | [libFuzzer] provide a plain C interface for custom mutators (experimental) | Kostya Serebryany | 2016-02-13 | 1 | -1/+10 |
| | | | | llvm-svn: 260794 | ||||
* | [libFuzzer] don't write the test unit when a leak is detected (since we ↵ | Kostya Serebryany | 2016-02-04 | 1 | -0/+1 |
| | | | | | | don't know which unit causes the leak) llvm-svn: 259731 | ||||
* | [libFuzzer] add -timeout_exitcode option | Kostya Serebryany | 2016-01-29 | 1 | -1/+1 |
| | | | | llvm-svn: 259265 | ||||
* | [libFuzzer] add -abort_on_timeout option | Kostya Serebryany | 2016-01-23 | 1 | -0/+2 |
| | | | | llvm-svn: 258631 | ||||
* | Use std::piecewise_constant_distribution instead of ad-hoc binary search. | Ivan Krasin | 2016-01-22 | 1 | -35/+45 |
| | | | | | | | | | | | | | | | 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 | -18/+15 |
| | | | | | | | | 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 | -15/+18 |
| | | | | | | | | | | | | | | | | | | 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 %p for printing addresses | Mike Aizatsky | 2016-01-21 | 1 | -1/+1 |
| | | | | llvm-svn: 258370 | ||||
* | [libFuzzer] move some code from public interface header to a non-public ↵ | Kostya Serebryany | 2016-01-16 | 1 | -1/+1 |
| | | | | | | header. NFC llvm-svn: 257963 | ||||
* | [libFuzzer] suggest a dictionary to the user of some of the trace-based ↵ | Kostya Serebryany | 2016-01-14 | 1 | -2/+4 |
| | | | | | | dictionary entries were successful llvm-svn: 257736 | ||||
* | [libFuzzer] make CurrentUnit a POD object instead of vector to avoid extra ↵ | Kostya Serebryany | 2016-01-13 | 1 | -22/+18 |
| | | | | | | allocations llvm-svn: 257713 | ||||
* | [libFuzzer] make sure we find buffer overflow in the input buffer. ↵ | Kostya Serebryany | 2016-01-13 | 1 | -5/+8 |
| | | | | | | Previously, re-using the same vector object was hiding buffer overflows (unless we used annotated vector) llvm-svn: 257701 | ||||
* | [libFuzzer] make sure to update CurrentUnit when drilling | Kostya Serebryany | 2016-01-13 | 1 | -1/+4 |
| | | | | llvm-svn: 257560 | ||||
* | [libFuzzer] change the way trace-based mutations are applied. Instead of a ↵ | Kostya Serebryany | 2016-01-09 | 1 | -15/+3 |
| | | | | | | custom code just rely on the automatically created dictionary llvm-svn: 257248 | ||||
* | [libfuzzer] print_new_cov_pcs experimental option. | Mike Aizatsky | 2016-01-06 | 1 | -1/+17 |
| | | | | | | Differential Revision: http://reviews.llvm.org/D15901 llvm-svn: 256882 |