summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rtextures.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/rtextures.c b/src/rtextures.c
index 0899accd..90c0de21 100644
--- a/src/rtextures.c
+++ b/src/rtextures.c
@@ -316,15 +316,18 @@ Image LoadImageRaw(const char *fileName, int width, int height, int format, int
unsigned char *dataPtr = fileData;
unsigned int size = GetPixelDataSize(width, height, format);
- // Offset file data to expected raw image by header size
- if ((headerSize > 0) && ((headerSize + size) <= dataSize)) dataPtr += headerSize;
-
- image.data = RL_MALLOC(size); // Allocate required memory in bytes
- memcpy(image.data, dataPtr, size); // Copy required data to image
- image.width = width;
- image.height = height;
- image.mipmaps = 1;
- image.format = format;
+ if (size <= dataSize) // Security check
+ {
+ // Offset file data to expected raw image by header size
+ if ((headerSize > 0) && ((headerSize + size) <= dataSize)) dataPtr += headerSize;
+
+ image.data = RL_MALLOC(size); // Allocate required memory in bytes
+ memcpy(image.data, dataPtr, size); // Copy required data to image
+ image.width = width;
+ image.height = height;
+ image.mipmaps = 1;
+ image.format = format;
+ }
UnloadFileData(fileData);
}