diff options
Diffstat (limited to 'src/Common/Dlgcode.c')
-rw-r--r-- | src/Common/Dlgcode.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/Common/Dlgcode.c b/src/Common/Dlgcode.c index 084e93d5..d8ed1bc2 100644 --- a/src/Common/Dlgcode.c +++ b/src/Common/Dlgcode.c @@ -7420,11 +7420,15 @@ fsif_end: char *LoadFile (const char *fileName, DWORD *size)
{
char *buf;
+ DWORD fileSize = INVALID_FILE_SIZE;
HANDLE h = CreateFile (fileName, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if (h == INVALID_HANDLE_VALUE)
return NULL;
- *size = GetFileSize (h, NULL);
+ if ((fileSize = GetFileSize (h, NULL)) == INVALID_FILE_SIZE)
+ return NULL;
+
+ *size = fileSize;
buf = (char *) calloc (*size + 1, 1);
if (buf == NULL)
|