Selaa lähdekoodia

Corrected bug on Raspberry Pi with strcat()

pull/132/head
raysan5 8 vuotta sitten
vanhempi
commit
8fd4507847
1 muutettua tiedostoa jossa 10 lisäystä ja 7 poistoa
  1. +10
    -7
      src/text.c

+ 10
- 7
src/text.c Näytä tiedosto

@ -782,12 +782,15 @@ static SpriteFont LoadBMFont(const char *fileName)
char *texPath = NULL;
char *lastSlash = NULL;
lastSlash = strrchr(fileName, '/'); // you need escape character
texPath = malloc(strlen(fileName) - strlen(lastSlash) + 1 + strlen(texFileName) + 1);
memcpy(texPath, fileName, strlen(fileName) - strlen(lastSlash));
strcat(texPath, "/");
strcat(texPath, texFileName);
strcat(texPath, "\0");
lastSlash = strrchr(fileName, '/');
// NOTE: We need some extra space to avoid memory corruption on next allocations!
texPath = malloc(strlen(fileName) - strlen(lastSlash) + strlen(texFileName) + 4);
// NOTE: strcat() and strncat() required a '\0' terminated string to work!
*texPath = '\0';
strncat(texPath, fileName, strlen(fileName) - strlen(lastSlash) + 1);
strncat(texPath, texFileName, strlen(texFileName));
TraceLog(DEBUG, "[%s] Font texture loading path: %s", fileName, texPath);
@ -828,7 +831,7 @@ static SpriteFont LoadBMFont(const char *fileName)
else if (unorderedChars) TraceLog(WARNING, "BMFont not supported: unordered chars data, falling back to default font");
// NOTE: Font data could be not ordered by charId: 32,33,34,35... raylib does not support unordered BMFonts
if ((firstChar != FONT_FIRST_CHAR) || (unorderedChars))
if ((firstChar != FONT_FIRST_CHAR) || (unorderedChars) || (font.texture.id == 0))
{
UnloadSpriteFont(font);
font = GetDefaultFont();

Ladataan…
Peruuta
Tallenna