|
6 | 6 | #include <script/interpreter.h>
|
7 | 7 | #include <test/fuzz/FuzzedDataProvider.h>
|
8 | 8 | #include <test/fuzz/fuzz.h>
|
| 9 | +#include <test/fuzz/util.h> |
9 | 10 |
|
10 | 11 | #include <cstdint>
|
11 | 12 | #include <limits>
|
@@ -56,17 +57,15 @@ FUZZ_TARGET_INIT(signature_checker, initialize_signature_checker)
|
56 | 57 | FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
|
57 | 58 | const unsigned int flags = fuzzed_data_provider.ConsumeIntegral<unsigned int>();
|
58 | 59 | const SigVersion sig_version = fuzzed_data_provider.PickValueInArray({SigVersion::BASE, SigVersion::WITNESS_V0});
|
59 |
| - const std::string script_string_1 = fuzzed_data_provider.ConsumeRandomLengthString(65536); |
60 |
| - const std::vector<uint8_t> script_bytes_1{script_string_1.begin(), script_string_1.end()}; |
61 |
| - const std::string script_string_2 = fuzzed_data_provider.ConsumeRandomLengthString(65536); |
62 |
| - const std::vector<uint8_t> script_bytes_2{script_string_2.begin(), script_string_2.end()}; |
| 60 | + const auto script_1 = ConsumeScript(fuzzed_data_provider, 65536); |
| 61 | + const auto script_2 = ConsumeScript(fuzzed_data_provider, 65536); |
63 | 62 | std::vector<std::vector<unsigned char>> stack;
|
64 |
| - (void)EvalScript(stack, {script_bytes_1.begin(), script_bytes_1.end()}, flags, FuzzedSignatureChecker(fuzzed_data_provider), sig_version, nullptr); |
| 63 | + (void)EvalScript(stack, script_1, flags, FuzzedSignatureChecker(fuzzed_data_provider), sig_version, nullptr); |
65 | 64 | if ((flags & SCRIPT_VERIFY_CLEANSTACK) != 0 && ((flags & SCRIPT_VERIFY_P2SH) == 0 || (flags & SCRIPT_VERIFY_WITNESS) == 0)) {
|
66 | 65 | return;
|
67 | 66 | }
|
68 | 67 | if ((flags & SCRIPT_VERIFY_WITNESS) != 0 && (flags & SCRIPT_VERIFY_P2SH) == 0) {
|
69 | 68 | return;
|
70 | 69 | }
|
71 |
| - (void)VerifyScript({script_bytes_1.begin(), script_bytes_1.end()}, {script_bytes_2.begin(), script_bytes_2.end()}, nullptr, flags, FuzzedSignatureChecker(fuzzed_data_provider), nullptr); |
| 70 | + (void)VerifyScript(script_1, script_2, nullptr, flags, FuzzedSignatureChecker(fuzzed_data_provider), nullptr); |
72 | 71 | }
|
0 commit comments