From 6985967c3bbfbc96e60fdd5ec6136d209c3d5210 Mon Sep 17 00:00:00 2001 From: Alex Hirsch Date: Thu, 4 Mar 2021 18:44:30 +0100 Subject: [PATCH] Add missing ERR_FAIL_INDEX check to Variant::construct Other functions in the same file validate parameters using the ERR_FAIL macros. This validation was missing for Variant::construct resulting in a crash when called with invalid data (p_type < 0). fix #46067 --- core/variant/variant_construct.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/core/variant/variant_construct.cpp b/core/variant/variant_construct.cpp index 52f9f6060e..f0c9e52b46 100644 --- a/core/variant/variant_construct.cpp +++ b/core/variant/variant_construct.cpp @@ -773,6 +773,7 @@ void Variant::_unregister_variant_constructors() { } void Variant::construct(Variant::Type p_type, Variant &base, const Variant **p_args, int p_argcount, Callable::CallError &r_error) { + ERR_FAIL_INDEX(p_type, Variant::VARIANT_MAX); uint32_t s = construct_data[p_type].size(); for (uint32_t i = 0; i < s; i++) { int argc = construct_data[p_type][i].argument_count;