🐛 fixed AFL driver to also read binary data
This commit is contained in:
		
							parent
							
								
									dbdcb3fec8
								
							
						
					
					
						commit
						6de9d4035a
					
				
					 1 changed files with 12 additions and 7 deletions
				
			
		|  | @ -11,9 +11,9 @@ passed byte array. | |||
| Licensed under the MIT License <http://opensource.org/licenses/MIT>.
 | ||||
| */ | ||||
| 
 | ||||
| #include <sstream> | ||||
| #include <cstdint> | ||||
| #include <iostream> | ||||
| #include <vector>    // for vector
 | ||||
| #include <cstdint>   // for uint8_t
 | ||||
| #include <iostream>  // for cin
 | ||||
| 
 | ||||
| extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size); | ||||
| 
 | ||||
|  | @ -23,10 +23,15 @@ int main() | |||
|     while (__AFL_LOOP(1000)) | ||||
|     { | ||||
| #endif | ||||
|         // copy stdin to stringstream to pass it to fuzzer as byte array
 | ||||
|         std::stringstream ss; | ||||
|         ss << std::cin.rdbuf(); | ||||
|         LLVMFuzzerTestOneInput(reinterpret_cast<const uint8_t*>(ss.str().c_str()), ss.str().size()); | ||||
|         // copy stdin to byte vector
 | ||||
|         std::vector<uint8_t> vec; | ||||
|         char c; | ||||
|         while (std::cin.get(c)) | ||||
|         { | ||||
|             vec.push_back(static_cast<uint8_t>(c)); | ||||
|         } | ||||
| 
 | ||||
|         LLVMFuzzerTestOneInput(vec.data(), vec.size()); | ||||
| #ifdef __AFL_HAVE_MANUAL_CONTROL | ||||
|     } | ||||
| #endif | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue