Index: src/wasm/wasm-function-name-table.cc |
diff --git a/src/wasm/wasm-function-name-table.cc b/src/wasm/wasm-function-name-table.cc |
index 9abcd9b0917364101225ea04b8095fec4c6b8f28..2ba06748bedcaca09e37959e8dae4821690dba7f 100644 |
--- a/src/wasm/wasm-function-name-table.cc |
+++ b/src/wasm/wasm-function-name-table.cc |
@@ -4,6 +4,7 @@ |
#include "src/wasm/wasm-function-name-table.h" |
+#include "src/wasm/utf8.h" |
#include "src/wasm/wasm-module.h" |
namespace v8 { |
@@ -60,6 +61,7 @@ Handle<Object> GetWasmFunctionNameFromTable(Handle<ByteArray> func_names_array, |
: func_names_array->get_int(func_index + 2); |
ScopedVector<byte> buffer(next_offset - offset); |
func_names_array->copy_out(offset, buffer.start(), next_offset - offset); |
+ if (!IsValidUtf8(buffer.start(), buffer.length())) return undefined(); |
MaybeHandle<Object> maybe_name = |
func_names_array->GetIsolate()->factory()->NewStringFromUtf8( |
Vector<const char>::cast(buffer)); |