Show More
@@ -9,22 +9,20 b'' | |||||
9 | #include <memory> |
|
9 | #include <memory> | |
10 | #include <stdlib.h> |
|
10 | #include <stdlib.h> | |
11 |
|
11 | |||
12 |
#include |
|
12 | #include <fuzzer/FuzzedDataProvider.h> | |
13 |
|
13 | |||
14 | extern "C" { |
|
14 | extern "C" { | |
15 | #include "bdiff.h" |
|
15 | #include "bdiff.h" | |
16 |
|
16 | |||
17 | int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) |
|
17 | int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) | |
18 | { |
|
18 | { | |
19 | auto maybe_inputs = SplitInputs(Data, Size); |
|
19 | FuzzedDataProvider provider(Data, Size); | |
20 | if (!maybe_inputs) { |
|
20 | std::string left = provider.ConsumeRandomLengthString(Size); | |
21 | return 0; |
|
21 | std::string right = provider.ConsumeRemainingBytesAsString(); | |
22 | } |
|
|||
23 | auto inputs = std::move(maybe_inputs.value()); |
|
|||
24 |
|
22 | |||
25 | struct bdiff_line *a, *b; |
|
23 | struct bdiff_line *a, *b; | |
26 |
int an = bdiff_splitlines( |
|
24 | int an = bdiff_splitlines(left.c_str(), left.size(), &a); | |
27 |
int bn = bdiff_splitlines( |
|
25 | int bn = bdiff_splitlines(right.c_str(), right.size(), &b); | |
28 | struct bdiff_hunk l; |
|
26 | struct bdiff_hunk l; | |
29 | bdiff_diff(a, an, b, bn, &l); |
|
27 | bdiff_diff(a, an, b, bn, &l); | |
30 | free(a); |
|
28 | free(a); |
General Comments 0
You need to be logged in to leave comments.
Login now