Browse Source

Add security checks when loading data from memory

pull/1381/head
raysan5 4 years ago
parent
commit
43d82c1f21
3 changed files with 23 additions and 13 deletions
  1. +6
    -3
      src/raudio.c
  2. +8
    -4
      src/text.c
  3. +9
    -6
      src/textures.c

+ 6
- 3
src/raudio.c View File

@ -694,10 +694,13 @@ Wave LoadWave(const char *fileName)
unsigned int fileSize = 0;
unsigned char *fileData = LoadFileData(fileName, &fileSize);
// Loading wave from memory data
wave = LoadWaveFromMemory(GetFileExtension(fileName), fileData, fileSize);
if (fileData != NULL)
{
// Loading wave from memory data
wave = LoadWaveFromMemory(GetFileExtension(fileName), fileData, fileSize);
RL_FREE(fileData);
RL_FREE(fileData);
}
return wave;
}

+ 8
- 4
src/text.c View File

@ -340,10 +340,14 @@ Font LoadFontEx(const char *fileName, int fontSize, int *fontChars, int charsCou
unsigned int fileSize = 0;
unsigned char *fileData = LoadFileData(fileName, &fileSize);
// Loading font from memory data
font = LoadFontFromMemory(GetFileExtension(fileName), fileData, fileSize, fontSize, fontChars, charsCount);
RL_FREE(fileData);
if (fileData != NULL)
{
// Loading font from memory data
font = LoadFontFromMemory(GetFileExtension(fileName), fileData, fileSize, fontSize, fontChars, charsCount);
RL_FREE(fileData);
}
else font = GetFontDefault();
return font;
}

+ 9
- 6
src/textures.c View File

@ -211,13 +211,16 @@ Image LoadImage(const char *fileName)
unsigned int fileSize = 0;
unsigned char *fileData = LoadFileData(fileName, &fileSize);
// Loading image from memory data
image = LoadImageFromMemory(GetFileExtension(fileName), fileData, fileSize);
if (fileData != NULL)
{
// Loading image from memory data
image = LoadImageFromMemory(GetFileExtension(fileName), fileData, fileSize);
if (image.data != NULL) TRACELOG(LOG_INFO, "IMAGE: [%s] Data loaded successfully (%ix%i)", fileName, image.width, image.height);
else TRACELOG(LOG_WARNING, "IMAGE: [%s] Failed to load data", fileName);
RL_FREE(fileData);
if (image.data != NULL) TRACELOG(LOG_INFO, "IMAGE: [%s] Data loaded successfully (%ix%i)", fileName, image.width, image.height);
else TRACELOG(LOG_WARNING, "IMAGE: [%s] Failed to load data", fileName);
RL_FREE(fileData);
}
return image;
}

Loading…
Cancel
Save