ce925c580e 
								
							 
						 
						
							
							
								
								[libFuzzer] hot fix a test  
							
							... 
							
							
							
							llvm-svn: 259732 
							
						 
						
							2016-02-04 00:12:28 +00:00  
				
					
						
							
							
								 
						
							
								b92602ada0 
								
							 
						 
						
							
							
								
								[libFuzzer] don't write the test unit when a leak is detected (since we don't know which unit causes the leak)  
							
							... 
							
							
							
							llvm-svn: 259731 
							
						 
						
							2016-02-04 00:02:17 +00:00  
				
					
						
							
							
								 
						
							
								d88d1305c4 
								
							 
						 
						
							
							
								
								[libFuzzer] don't create too many trace-based mutations as it may be too slow  
							
							... 
							
							
							
							llvm-svn: 259600 
							
						 
						
							2016-02-02 23:17:45 +00:00  
				
					
						
							
							
								 
						
							
								bfbe7fc404 
								
							 
						 
						
							
							
								
								[libFuzzer] allow passing 1 or more files as individual inputs  
							
							... 
							
							
							
							llvm-svn: 259459 
							
						 
						
							2016-02-02 03:03:47 +00:00  
				
					
						
							
							
								 
						
							
								078e984d8d 
								
							 
						 
						
							
							
								
								[libFuzzer] fail if the corpus dir does not exist  
							
							... 
							
							
							
							llvm-svn: 259454 
							
						 
						
							2016-02-02 02:07:26 +00:00  
				
					
						
							
							
								 
						
							
								54a6363a8f 
								
							 
						 
						
							
							
								
								[libFuzzer] add -timeout_exitcode option  
							
							... 
							
							
							
							llvm-svn: 259265 
							
						 
						
							2016-01-29 23:30:07 +00:00  
				
					
						
							
							
								 
						
							
								085ca4131f 
								
							 
						 
						
							
							
								
								[libFuzzer] re-enable  test for -abort_on_timeout=1, this time protecting from ASAN_OPTIONS set outside  
							
							... 
							
							
							
							llvm-svn: 259263 
							
						 
						
							2016-01-29 23:19:00 +00:00  
				
					
						
							
							
								 
						
							
								d7785e75f3 
								
							 
						 
						
							
							
								
								Temporary disable broken fuzzer/timeout tests.  
							
							... 
							
							
							
							Reviewers: kcc
Differential Revision: http://reviews.llvm.org/D16543 
llvm-svn: 258702 
							
						 
						
							2016-01-25 19:05:45 +00:00  
				
					
						
							
							
								 
						
							
								9768e7f06b 
								
							 
						 
						
							
							
								
								[libFuzzer] add -abort_on_timeout option  
							
							... 
							
							
							
							llvm-svn: 258631 
							
						 
						
							2016-01-23 19:34:19 +00:00  
				
					
						
							
							
								 
						
							
								160dcba81f 
								
							 
						 
						
							
							
								
								[libFuzzer] add more fields to DictionaryEntry to count the number of uses and successes  
							
							... 
							
							
							
							llvm-svn: 258589 
							
						 
						
							2016-01-22 23:55:14 +00:00  
				
					
						
							
							
								 
						
							
								df91910bd4 
								
							 
						 
						
							
							
								
								Use std::piecewise_constant_distribution instead of ad-hoc binary search.  
							
							... 
							
							
							
							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 
							
						 
						
							2016-01-22 22:28:27 +00:00  
				
					
						
							
							
								 
						
							
								d84f74cab7 
								
							 
						 
						
							
							
								
								Revert r258473 as it's breaking the build with libc++  
							
							... 
							
							
							
							Reviewers: kcc
Differential Revision: http://reviews.llvm.org/D16441 
llvm-svn: 258479 
							
						 
						
							2016-01-22 03:21:52 +00:00  
				
					
						
							
							
								 
						
							
								b008fd4d89 
								
							 
						 
						
							
							
								
								Use std::piecewise_constant_distribution instead of ad-hoc binary search.  
							
							... 
							
							
							
							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 
							
						 
						
							2016-01-22 01:32:34 +00:00  
				
					
						
							
							
								 
						
							
								b5e984992a 
								
							 
						 
						
							
							
								
								[libFuzzer] don't do expensive memmem if the result will not be used  
							
							... 
							
							
							
							llvm-svn: 258462 
							
						 
						
							2016-01-22 01:04:58 +00:00  
				
					
						
							
							
								 
						
							
								2f13f223c7 
								
							 
						 
						
							
							
								
								[libFuzzer] don't use std::vector in one more hot path  
							
							... 
							
							
							
							llvm-svn: 258380 
							
						 
						
							2016-01-21 01:52:14 +00:00  
				
					
						
							
							
								 
						
							
								e313f8f8ff 
								
							 
						 
						
							
							
								
								[libfuzzer] use %p for printing addresses  
							
							... 
							
							
							
							llvm-svn: 258370 
							
						 
						
							2016-01-21 00:02:09 +00:00  
				
					
						
							
							
								 
						
							
								311f27c0a8 
								
							 
						 
						
							
							
								
								[libFuzzer] use std::mt19937 for generating random numbers by default. Fix MyStoll to handle negative values. Use std::any_of instead of std::find_if  
							
							... 
							
							
							
							llvm-svn: 258178 
							
						 
						
							2016-01-19 20:33:57 +00:00  
				
					
						
							
							
								 
						
							
								476f0ce31a 
								
							 
						 
						
							
							
								
								[libFuzzer] replace vector with a simpler data structure in the Dictionaries to avoid memory allocations on hot path  
							
							... 
							
							
							
							llvm-svn: 257985 
							
						 
						
							2016-01-16 03:53:32 +00:00  
				
					
						
							
							
								 
						
							
								aca7696f4d 
								
							 
						 
						
							
							
								
								[libFuzzer] introduce LLVMFuzzerInitialize  
							
							... 
							
							
							
							llvm-svn: 257980 
							
						 
						
							2016-01-16 01:23:12 +00:00  
				
					
						
							
							
								 
						
							
								628bc3ec00 
								
							 
						 
						
							
							
								
								[libFuzzer] move some code from public interface header to a non-public header. NFC  
							
							... 
							
							
							
							llvm-svn: 257963 
							
						 
						
							2016-01-16 00:04:36 +00:00  
				
					
						
							
							
								 
						
							
								ae5b9567bc 
								
							 
						 
						
							
							
								
								[libFuzzer] do mutations based on memcmp/strcmp interceptors under a separate flag (-use_memcmp, default=1)  
							
							... 
							
							
							
							llvm-svn: 257873 
							
						 
						
							2016-01-15 06:24:05 +00:00  
				
					
						
							
							
								 
						
							
								4282d30516 
								
							 
						 
						
							
							
								
								[libFuzzer] use custom stol; also introduce __libfuzzer_is_present so that users can check for its presence.  
							
							... 
							
							
							
							llvm-svn: 257848 
							
						 
						
							2016-01-15 00:17:37 +00:00  
				
					
						
							
							
								 
						
							
								4b35874b2a 
								
							 
						 
						
							
							
								
								[libFuzzer] suggest a dictionary to the user of some of the trace-based dictionary entries were successful  
							
							... 
							
							
							
							llvm-svn: 257736 
							
						 
						
							2016-01-14 02:36:44 +00:00  
				
					
						
							
							
								 
						
							
								98abb2c90a 
								
							 
						 
						
							
							
								
								[libFuzzer] make CurrentUnit a POD object instead of vector to avoid extra allocations  
							
							... 
							
							
							
							llvm-svn: 257713 
							
						 
						
							2016-01-13 23:46:01 +00:00  
				
					
						
							
							
								 
						
							
								d50a3eedb4 
								
							 
						 
						
							
							
								
								[libFuzzer] make sure we find buffer overflow in the input buffer. Previously, re-using the same vector object was hiding buffer overflows (unless we used annotated vector)  
							
							... 
							
							
							
							llvm-svn: 257701 
							
						 
						
							2016-01-13 23:02:30 +00:00  
				
					
						
							
							
								 
						
							
								72fdb32dac 
								
							 
						 
						
							
							
								
								[libFuzzer] make sure to update CurrentUnit when drilling  
							
							... 
							
							
							
							llvm-svn: 257560 
							
						 
						
							2016-01-13 01:58:27 +00:00  
				
					
						
							
							
								 
						
							
								4b83a4f6fe 
								
							 
						 
						
							
							
								
								[libFuzzer] add a macro LLVM_FUZZER_DEFINES_SANITIZER_WEAK_HOOOKS  
							
							... 
							
							
							
							llvm-svn: 257482 
							
						 
						
							2016-01-12 16:50:18 +00:00  
				
					
						
							
							
								 
						
							
								4174005622 
								
							 
						 
						
							
							
								
								[libFuzzer] when a new unit is discovered using a dictionary, print all used dictionary entries  
							
							... 
							
							
							
							llvm-svn: 257435 
							
						 
						
							2016-01-12 02:36:59 +00:00  
				
					
						
							
							
								 
						
							
								859e86d962 
								
							 
						 
						
							
							
								
								[libFuzzer] add various debug prints. Also don't mutate based on a cmp trace like (a eq a) or (a neq a)  
							
							... 
							
							
							
							llvm-svn: 257434 
							
						 
						
							2016-01-12 02:08:37 +00:00  
				
					
						
							
							
								 
						
							
								e3580956ea 
								
							 
						 
						
							
							
								
								[libFuzzer] extend the weak memcmp/strcmp/strncmp interceptors to receive the result of the computations. With that, don't do any mutations if memcmp/etc returned 0  
							
							... 
							
							
							
							llvm-svn: 257423 
							
						 
						
							2016-01-12 00:43:42 +00:00  
				
					
						
							
							
								 
						
							
								1f9c40db1d 
								
							 
						 
						
							
							
								
								[libFuzzer] debug prints in tracing  
							
							... 
							
							
							
							llvm-svn: 257249 
							
						 
						
							2016-01-09 03:46:08 +00:00  
				
					
						
							
							
								 
						
							
								b65805a939 
								
							 
						 
						
							
							
								
								[libFuzzer] change the way trace-based mutations are applied. Instead of a custom code just rely on the automatically created dictionary  
							
							... 
							
							
							
							llvm-svn: 257248 
							
						 
						
							2016-01-09 03:08:58 +00:00  
				
					
						
							
							
								 
						
							
								c573316eee 
								
							 
						 
						
							
							
								
								[libFuzzer] don't limit memcmp tracing with 8 bytes  
							
							... 
							
							
							
							llvm-svn: 257245 
							
						 
						
							2016-01-09 01:39:55 +00:00  
				
					
						
							
							
								 
						
							
								e7583d21e3 
								
							 
						 
						
							
							
								
								[libFuzzer] refactor the way we collect cmp traces (don't use std::vector, don't limit with 8 bytes)  
							
							... 
							
							
							
							llvm-svn: 257239 
							
						 
						
							2016-01-09 00:38:40 +00:00  
				
					
						
							
							
								 
						
							
								152ac7ad70 
								
							 
						 
						
							
							
								
								[libFuzzer] add a position hint to the dictionary-based mutator  
							
							... 
							
							
							
							llvm-svn: 257013 
							
						 
						
							2016-01-07 01:49:35 +00:00  
				
					
						
							
							
								 
						
							
								80eb76abf4 
								
							 
						 
						
							
							
								
								[libFuzzer] extend the dictionary mutator to optionally overwrite data with the dict entry  
							
							... 
							
							
							
							llvm-svn: 256900 
							
						 
						
							2016-01-06 02:13:04 +00:00  
				
					
						
							
							
								 
						
							
								8b11f877e4 
								
							 
						 
						
							
							
								
								[libfuzzer] print_new_cov_pcs experimental option.  
							
							... 
							
							
							
							Differential Revision: http://reviews.llvm.org/D15901 
llvm-svn: 256882 
							
						 
						
							2016-01-06 00:21:22 +00:00  
				
					
						
							
							
								 
						
							
								226b734d73 
								
							 
						 
						
							
							
								
								[libFuzzer] make trace-based fuzzing not crash in presence of threads  
							
							... 
							
							
							
							llvm-svn: 256876 
							
						 
						
							2016-01-06 00:03:35 +00:00  
				
					
						
							
							
								 
						
							
								b0fb6e8508 
								
							 
						 
						
							
							
								
								[libFuzzer] add AFL-style dictionary for C++, remove the old file with tokens  
							
							... 
							
							
							
							llvm-svn: 256229 
							
						 
						
							2015-12-22 01:50:51 +00:00  
				
					
						
							
							
								 
						
							
								550e9c80a6 
								
							 
						 
						
							
							
								
								[libFuzzer] deprecate -save_minimized_corpus, -merge can be used instead  
							
							... 
							
							
							
							llvm-svn: 256086 
							
						 
						
							2015-12-19 03:42:16 +00:00  
				
					
						
							
							
								 
						
							
								bf65644c97 
								
							 
						 
						
							
							
								
								[libFuzzer] split the tests to run them in parallel, remove one redundant test  
							
							... 
							
							
							
							llvm-svn: 256085 
							
						 
						
							2015-12-19 03:35:30 +00:00  
				
					
						
							
							
								 
						
							
								27ab2d759f 
								
							 
						 
						
							
							
								
								[libFuzzer] make CrossOver just one of the other mutations  
							
							... 
							
							
							
							llvm-svn: 256081 
							
						 
						
							2015-12-19 02:49:09 +00:00  
				
					
						
							
							
								 
						
							
								14c50288cc 
								
							 
						 
						
							
							
								
								[libFuzzer] print successfull mutations sequences  
							
							... 
							
							
							
							llvm-svn: 256071 
							
						 
						
							2015-12-19 01:09:49 +00:00  
				
					
						
							
							
								 
						
							
								16c1978760 
								
							 
						 
						
							
							
								
								Fuzzer: Fix library dependencies.  
							
							... 
							
							
							
							Newer versions of libstdc++ (4.9+), as well as libc++, depend directly on
libpthread from the standard library headers, so libfuzzer needs to declare
a standard library dependency.
llvm-svn: 255745 
							
						 
						
							2015-12-16 02:14:57 +00:00  
				
					
						
							
							
								 
						
							
								a1a5c69b57 
								
							 
						 
						
							
							
								
								[LibFuzzer] Introducing FUZZER_FLAG_UNSIGNED and using it for seeding.  
							
							... 
							
							
							
							Differential Revision: http://reviews.llvm.org/D15339 
done
llvm-svn: 255296 
							
						 
						
							2015-12-10 20:41:53 +00:00  
				
					
						
							
							
								 
						
							
								8617aaaac2 
								
							 
						 
						
							
							
								
								[libFuzzer] don't reload the corpus more than once every second  
							
							... 
							
							
							
							llvm-svn: 254824 
							
						 
						
							2015-12-05 02:09:22 +00:00  
				
					
						
							
							
								 
						
							
								9e48cda9bc 
								
							 
						 
						
							
							
								
								[libFuzzer] compute base64 in-process instead of using an external lib. Since libFuzzer should not depend on anything, just re-implement base64 encoder. PR25746  
							
							... 
							
							
							
							llvm-svn: 254784 
							
						 
						
							2015-12-04 22:29:39 +00:00  
				
					
						
							
							
								 
						
							
								71552ce64b 
								
							 
						 
						
							
							
								
								Libfuzzer: do not pass null into user function  
							
							... 
							
							
							
							Differential Revision: http://reviews.llvm.org/D15098 
llvm-svn: 254558 
							
						 
						
							2015-12-02 22:43:53 +00:00  
				
					
						
							
							
								 
						
							
								fba04273b7 
								
							 
						 
						
							
							
								
								[libFuzzer] add a test that is built with -fsanitize-coverage=trace-bb  
							
							... 
							
							
							
							llvm-svn: 254484 
							
						 
						
							2015-12-02 02:49:37 +00:00  
				
					
						
							
							
								 
						
							
								2d0ef14f5d 
								
							 
						 
						
							
							
								
								[libFuzzer] add a flag -exact_artifact_path  
							
							... 
							
							
							
							llvm-svn: 254100 
							
						 
						
							2015-11-25 21:40:46 +00:00