Remove two potential out of bounds crashes in GuiTextBoxMulti (#211)
This commit is contained in:
parent
1b18e43768
commit
798da1b522
@ -2319,9 +2319,11 @@ bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool editMode)
|
||||
// We get an Unicode codepoint
|
||||
int codepoint = GetCharPressed();
|
||||
int textLength = (int)strlen(text); // Length in bytes (UTF-8 string)
|
||||
int byteSize = 0;
|
||||
const char *textUTF8 = CodepointToUTF8(key, &byteSize)
|
||||
|
||||
// Introduce characters
|
||||
if (textLength < (textSize - 1))
|
||||
if ((textLength + byteSize) < textSize)
|
||||
{
|
||||
if (IsKeyPressed(KEY_ENTER))
|
||||
{
|
||||
@ -2353,7 +2355,7 @@ bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool editMode)
|
||||
{
|
||||
// Remove latest UTF-8 unicode character introduced (n bytes)
|
||||
int charUTF8Length = 0;
|
||||
while (((unsigned char)text[textLength - 1 - charUTF8Length] & 0b01000000) == 0) charUTF8Length++;
|
||||
while (charUTF8Length < textLength && ((unsigned char)text[textLength - 1 - charUTF8Length] & 0b01000000) == 0) charUTF8Length++;
|
||||
|
||||
textLength -= (charUTF8Length + 1);
|
||||
text[textLength] = '\0';
|
||||
|
Loading…
x
Reference in New Issue
Block a user