From 2924ac48c5013acf18b7577de4f610612d88dd6c Mon Sep 17 00:00:00 2001 From: rubidium42 Date: Fri, 4 Jun 2021 18:59:13 +0200 Subject: [PATCH] Fix: [Script] Ensure the saved script strings are properly validated and terminated when being read from the savegame --- src/script/script_instance.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/script/script_instance.cpp b/src/script/script_instance.cpp index 24dbb9c395..7c2fa43d67 100644 --- a/src/script/script_instance.cpp +++ b/src/script/script_instance.cpp @@ -569,8 +569,9 @@ bool ScriptInstance::IsPaused() case SQSL_STRING: { SlObject(nullptr, _script_byte); - static char buf[256]; + static char buf[std::numeric_limits::max()]; SlArray(buf, _script_sl_byte, SLE_CHAR); + StrMakeValidInPlace(buf, buf + _script_sl_byte); if (vm != nullptr) sq_pushstring(vm, buf, -1); return true; }