diff --git a/apps/code/variable_box_controller.cpp b/apps/code/variable_box_controller.cpp index af5652a95..49baf8e25 100644 --- a/apps/code/variable_box_controller.cpp +++ b/apps/code/variable_box_controller.cpp @@ -53,9 +53,11 @@ void VariableBoxController::ContentViewController::viewWillAppear() { m_scriptStore->scanScriptsForFunctionsAndVariables( this, [](void * context, const char * functionName, int scriptIndex) { + if (strlen(functionName)+1 > k_maxScriptObjectNameSize) { return; } VariableBoxController::ContentViewController * cvc = static_cast(context); cvc->addFunctionAtIndex(functionName, scriptIndex);}, [](void * context, const char * variableName, int scriptIndex) { + if (strlen(variableName)+1 > k_maxScriptObjectNameSize) { return; } VariableBoxController::ContentViewController * cvc = static_cast(context); cvc->addVariableAtIndex(variableName, scriptIndex);}); } @@ -119,7 +121,8 @@ void VariableBoxController::ContentViewController::willDisplayCellForIndex(Highl void VariableBoxController::ContentViewController::insertTextInCaller(const char * text) { int commandBufferMaxSize = strlen(text)+1; - char commandBuffer[commandBufferMaxSize]; + char commandBuffer[k_maxScriptObjectNameSize]; + assert(commandBufferMaxSize <= k_maxScriptObjectNameSize); Shared::ToolboxHelpers::TextToInsertForCommandText(text, commandBuffer, commandBufferMaxSize, true); m_textInputCaller->handleEventWithText(commandBuffer); } diff --git a/apps/code/variable_box_controller.h b/apps/code/variable_box_controller.h index 71518a741..31ad39f2c 100644 --- a/apps/code/variable_box_controller.h +++ b/apps/code/variable_box_controller.h @@ -43,6 +43,7 @@ private: int reusableCellCount() override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; private: + constexpr static int k_maxScriptObjectNameSize = 100; constexpr static int k_maxNumberOfDisplayedRows = 6; //240/40 constexpr static int k_maxScriptNodesCount = 32; void insertTextInCaller(const char * text);