From 6b9bb361f9adb6165fff0f5d6e73b43958256e02 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Tue, 28 Sep 2021 13:25:15 -0700 Subject: [PATCH] Fixed attempted array allocation with negative dimension --- IDEHelper/Compiler/BfExprEvaluator.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index c9ee2f15..913f1473 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -13772,6 +13772,11 @@ void BfExprEvaluator::CreateObject(BfObjectCreateExpression* objCreateExpr, BfAs if ((constant != NULL) && (mModule->mBfIRBuilder->IsInt(constant->mTypeCode))) { int64 dimLength = constant->mInt64; + if (dimLength < 0) + { + mModule->Fail(StrFormat("Invalid array dimension '%lld'", dimLength), dimLengthRefs[dim]); + dimLength = -1; + } dimLengths.push_back(dimLength); } else if ((constant != NULL) && (constant->mConstType == BfConstType_Undef))