Add security checks when loading data from memory

This commit is contained in:
raysan5 2020-09-16 11:33:56 +02:00
parent c5c156d65e
commit 43d82c1f21
3 changed files with 23 additions and 13 deletions

View file

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

View file

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

View file

@ -211,13 +211,16 @@ Image LoadImage(const char *fileName)
unsigned int fileSize = 0; unsigned int fileSize = 0;
unsigned char *fileData = LoadFileData(fileName, &fileSize); unsigned char *fileData = LoadFileData(fileName, &fileSize);
// Loading image from memory data if (fileData != NULL)
image = LoadImageFromMemory(GetFileExtension(fileName), fileData, fileSize); {
// 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); 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); else TRACELOG(LOG_WARNING, "IMAGE: [%s] Failed to load data", fileName);
RL_FREE(fileData); RL_FREE(fileData);
}
return image; return image;
} }