summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorraysan5 <[email protected]>2020-09-16 11:33:56 +0200
committerraysan5 <[email protected]>2020-09-16 11:33:56 +0200
commit43d82c1f21a2432d290e44bf223d2879f5af8837 (patch)
treec929c97342b4e5e81885d148ef795a0d0c396cbb /src
parentc5c156d65e3a12e5b9abbf93c3a0cd51d29a5971 (diff)
downloadraylib-43d82c1f21a2432d290e44bf223d2879f5af8837.tar.gz
raylib-43d82c1f21a2432d290e44bf223d2879f5af8837.zip
Add security checks when loading data from memory
Diffstat (limited to 'src')
-rw-r--r--src/raudio.c9
-rw-r--r--src/text.c12
-rw-r--r--src/textures.c15
3 files changed, 23 insertions, 13 deletions
diff --git a/src/raudio.c b/src/raudio.c
index f2fd5dcf..3c4c0a6a 100644
--- a/src/raudio.c
+++ b/src/raudio.c
@@ -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;
}
diff --git a/src/text.c b/src/text.c
index cce8d98a..52f2f46a 100644
--- a/src/text.c
+++ b/src/text.c
@@ -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;
}
diff --git a/src/textures.c b/src/textures.c
index e375b263..c1c60d08 100644
--- a/src/textures.c
+++ b/src/textures.c
@@ -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;
}