From fee8a3ec84a896e6eaba4ef68d68199bc42278da Mon Sep 17 00:00:00 2001 From: Vandomas Date: Tue, 25 Aug 2026 15:36:15 +0300 Subject: [PATCH] Fix macOS stack overflow when loading a savegame (#3270) 512 kB is as large as the default macos stack. --- rts/System/LoadSave/CregLoadSaveHandler.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/rts/System/LoadSave/CregLoadSaveHandler.cpp b/rts/System/LoadSave/CregLoadSaveHandler.cpp index a6db8105d36..a3ed63a7beb 100644 --- a/rts/System/LoadSave/CregLoadSaveHandler.cpp +++ b/rts/System/LoadSave/CregLoadSaveHandler.cpp @@ -218,10 +218,9 @@ static void PrintSize(const char* txt, int size) static void ReadString(std::istream& s, std::string& str) { - char cstr[MAX_STRING_SIZE + 1]; - s.getline(cstr, sizeof(cstr) - 1, 0); - str.clear(); - str.append(cstr); + std::getline(s, str, '\0'); + if (str.length() > MAX_STRING_SIZE) + throw content_error("[creg::ReadString] string too long"); }