From b47e607105cba55bff0c61b67170c94bae73a2ca Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 12 Nov 2016 16:27:03 +0100 Subject: [PATCH] HLE_OS: More bounds checking in GetStringVA --- Source/Core/Core/HLE/HLE_OS.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/HLE/HLE_OS.cpp b/Source/Core/Core/HLE/HLE_OS.cpp index 300cb57cc6..6b6ada1110 100644 --- a/Source/Core/Core/HLE/HLE_OS.cpp +++ b/Source/Core/Core/HLE/HLE_OS.cpp @@ -87,8 +87,14 @@ std::string GetStringVA(u32 strReg) result += '%'; continue; } - while (string[i] < 'A' || string[i] > 'z' || string[i] == 'l' || string[i] == '-') + + while (i < string.size() && + (string[i] < 'A' || string[i] > 'z' || string[i] == 'l' || string[i] == '-')) + { ArgumentBuffer += string[i++]; + } + if (i >= string.size()) + break; ArgumentBuffer += string[i];