Kaynağa Gözat

LibWasm: Move the vector size limit to Constants.h and increase it a bit

Ali Mohammad Pur 3 yıl önce
ebeveyn
işleme
d52a26de3f

+ 1 - 0
Userland/Libraries/LibWasm/Constants.h

@@ -40,6 +40,7 @@ static constexpr auto page_size = 64 * KiB;
 // These are not concretely defined by the spec, so the values are only defined by us.
 static constexpr auto minimum_stack_space_to_keep_free = 256 * KiB; // Note: Value is arbitrary and chosen by testing with ASAN
 static constexpr auto max_allowed_executed_instructions_per_call = 256 * 1024 * 1024;
+static constexpr auto max_allowed_vector_size = 2 * MiB;
 static constexpr auto max_allowed_function_locals_per_type = 420; // Note: VERY arbitrary.
 
 }

+ 1 - 1
Userland/Libraries/LibWasm/Parser/Parser.cpp

@@ -54,7 +54,7 @@ static auto parse_vector(InputStream& stream)
                     return ParseResult<Vector<T>> { with_eof_check(stream, ParseError::ExpectedSize) };
                 entries.append(value);
             } else if constexpr (IsSame<T, u8>) {
-                if (count > 64 * KiB)
+                if (count > Constants::max_allowed_vector_size)
                     return ParseResult<Vector<T>> { ParseError::HugeAllocationRequested };
                 entries.resize(count);
                 if (!stream.read_or_error({ entries.data(), entries.size() }))