11#define WIN32_LEAN_AND_MEAN
22
3+ #include < assert.h>
34#include < windows.h>
45#include < tchar.h>
56#include < stdio.h>
@@ -60,7 +61,7 @@ BOOL CheckResourceStrings(LPVOID data, DWORD size, const char *first, const wcha
6061 src = (const wchar_t *) (((const char *) data) + strlen (first) + 1 );
6162 second_pos = swcsstr (src, second, (size - strlen (first) - 1 ) / sizeof (wchar_t ));
6263 if (second_pos == NULL ) {
63- fprintf (stderr, " ERROR: data doesn't continue with %S \n " , second);
64+ fwprintf (stderr, L " ERROR: data doesn't continue with %s \n " , second);
6465 return FALSE ;
6566 }
6667
@@ -71,8 +72,9 @@ BOOL LoadFromMemory(char *filename)
7172{
7273 FILE *fp;
7374 unsigned char *data=NULL ;
74- size_t size;
75- HMEMORYMODULE handle;
75+ long size;
76+ size_t read;
77+ HMEMORYMODULE handle = NULL ;
7678 addNumberProc addNumber;
7779 addNumberProc addNumber2;
7880 HMEMORYRSRC resourceInfo;
@@ -91,9 +93,12 @@ BOOL LoadFromMemory(char *filename)
9193
9294 fseek (fp, 0 , SEEK_END);
9395 size = ftell (fp);
96+ assert (size > 0 );
9497 data = (unsigned char *)malloc (size);
98+ assert (data != NULL );
9599 fseek (fp, 0 , SEEK_SET);
96- fread (data, 1 , size, fp);
100+ read = fread (data, 1 , size, fp);
101+ assert (read == static_cast <size_t >(size));
97102 fclose (fp);
98103
99104 handle = MemoryLoadLibrary (data);
@@ -204,11 +209,9 @@ BOOL LoadFromMemory(char *filename)
204209 result = FALSE ;
205210 }
206211
207- MemoryFreeLibrary (handle);
208-
209212exit:
210- if (data)
211- free (data);
213+ MemoryFreeLibrary (handle);
214+ free (data);
212215 return result;
213216}
214217
0 commit comments