| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
1 |
#include <cassert> |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
2 |
#include <fstream> |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
3 |
#include <vector> |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
4 |
|
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
5 |
#include "fuzzer-common.h" |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
6 |
|
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
7 |
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size); |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
8 |
|
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
9 |
int main(int argc, char** argv) { |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
10 |
for (int i = 1; i < argc; ++i) { |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
11 |
std::ifstream in(argv[i]); |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
12 |
assert(in); |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
13 |
in.seekg(0, std::ios_base::end); |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
14 |
const auto size = in.tellg(); |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
15 |
assert(size >= 0); |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
16 |
in.seekg(0, std::ios_base::beg); |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
17 |
std::vector<char> buf(static_cast<size_t>(size)); |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
18 |
in.read(buf.data(), size); |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
19 |
assert(in.gcount() == size); |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
20 |
LLVMFuzzerTestOneInput(as_bytes(buf.data()), buf.size()); |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
21 |
} |
| f8deb5b9 |
Poul Sander |
2022-01-15 13:55 |
22 |
} |
|
|
1970-01-01 00:00 |
23 |
|