2
0
Эх сурвалжийг харах

Remove two potential out of bounds crashes in GuiTextBoxMulti (#211)

gulrak 3 жил өмнө
parent
commit
798da1b522
1 өөрчлөгдсөн 4 нэмэгдсэн , 2 устгасан
  1. 4 2
      src/raygui.h

+ 4 - 2
src/raygui.h

@@ -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';