| OLD | NEW | 
|---|
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include <limits.h> | 5 #include <limits.h> | 
| 6 #include <stddef.h> | 6 #include <stddef.h> | 
| 7 #include <stdint.h> | 7 #include <stdint.h> | 
| 8 | 8 | 
| 9 #include "include/v8.h" | 9 #include "include/v8.h" | 
| 10 #include "src/factory.h" | 10 #include "src/factory.h" | 
| 11 #include "src/isolate-inl.h" | 11 #include "src/isolate-inl.h" | 
| 12 #include "src/isolate.h" | 12 #include "src/isolate.h" | 
| 13 #include "src/objects-inl.h" | 13 #include "src/objects-inl.h" | 
| 14 #include "src/objects.h" | 14 #include "src/objects.h" | 
| 15 #include "src/wasm/wasm-module.h" | 15 #include "src/wasm/wasm-module.h" | 
| 16 #include "test/common/wasm/wasm-module-runner.h" | 16 #include "test/common/wasm/wasm-module-runner.h" | 
| 17 #include "test/fuzzer/fuzzer-support.h" | 17 #include "test/fuzzer/fuzzer-support.h" | 
| 18 | 18 | 
| 19 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { | 19 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { | 
| 20   unsigned int flag_value = v8::internal::FLAG_wasm_max_mem_pages; | 20   unsigned int max_mem_flag_value = v8::internal::FLAG_wasm_max_mem_pages; | 
|  | 21   unsigned int max_table_flag_value = v8::internal::FLAG_wasm_max_table_size; | 
| 21   v8::internal::FLAG_wasm_max_mem_pages = 32; | 22   v8::internal::FLAG_wasm_max_mem_pages = 32; | 
|  | 23   v8::internal::FLAG_wasm_max_table_size = 100; | 
| 22   v8_fuzzer::FuzzerSupport* support = v8_fuzzer::FuzzerSupport::Get(); | 24   v8_fuzzer::FuzzerSupport* support = v8_fuzzer::FuzzerSupport::Get(); | 
| 23   v8::Isolate* isolate = support->GetIsolate(); | 25   v8::Isolate* isolate = support->GetIsolate(); | 
| 24   v8::internal::Isolate* i_isolate = | 26   v8::internal::Isolate* i_isolate = | 
| 25       reinterpret_cast<v8::internal::Isolate*>(isolate); | 27       reinterpret_cast<v8::internal::Isolate*>(isolate); | 
| 26 | 28 | 
| 27   // Clear any pending exceptions from a prior run. | 29   // Clear any pending exceptions from a prior run. | 
| 28   if (i_isolate->has_pending_exception()) { | 30   if (i_isolate->has_pending_exception()) { | 
| 29     i_isolate->clear_pending_exception(); | 31     i_isolate->clear_pending_exception(); | 
| 30   } | 32   } | 
| 31 | 33 | 
| 32   v8::Isolate::Scope isolate_scope(isolate); | 34   v8::Isolate::Scope isolate_scope(isolate); | 
| 33   v8::HandleScope handle_scope(isolate); | 35   v8::HandleScope handle_scope(isolate); | 
| 34   v8::Context::Scope context_scope(support->GetContext()); | 36   v8::Context::Scope context_scope(support->GetContext()); | 
| 35   v8::TryCatch try_catch(isolate); | 37   v8::TryCatch try_catch(isolate); | 
| 36   v8::internal::wasm::testing::SetupIsolateForWasmModule(i_isolate); | 38   v8::internal::wasm::testing::SetupIsolateForWasmModule(i_isolate); | 
| 37   v8::internal::wasm::testing::CompileAndRunWasmModule( | 39   v8::internal::wasm::testing::CompileAndRunWasmModule( | 
| 38       i_isolate, data, data + size, v8::internal::wasm::kWasmOrigin); | 40       i_isolate, data, data + size, v8::internal::wasm::kWasmOrigin); | 
| 39   v8::internal::FLAG_wasm_max_mem_pages = flag_value; | 41   v8::internal::FLAG_wasm_max_mem_pages = max_mem_flag_value; | 
|  | 42   v8::internal::FLAG_wasm_max_table_size = max_table_flag_value; | 
| 40   return 0; | 43   return 0; | 
| 41 } | 44 } | 
| OLD | NEW | 
|---|