allocate enough space for NUL, and do not try to open an empty file string

This commit is contained in:
Brad Parker
2016-12-31 01:56:52 -05:00
parent 309c8db34d
commit 821ca02474
3 changed files with 15 additions and 5 deletions

View File

@@ -172,7 +172,10 @@ void FCEUD_VideoChanged (void)
FILE *FCEUD_UTF8fopen(const char *n, const char *m) FILE *FCEUD_UTF8fopen(const char *n, const char *m)
{ {
return fopen(n, m); if (n)
return fopen(n, m);
else
return NULL;
} }
#define MAX_PATH 1024 #define MAX_PATH 1024

View File

@@ -91,8 +91,9 @@ char *FCEU_MakeFName(int type, int id1, char *cd1)
break; break;
} }
ret = (char*)malloc(strlen(tmp) * sizeof(char)); ret = (char*)malloc(strlen(tmp) * sizeof(char) + 1);
strncpy(ret, tmp, strlen(tmp)); strncpy(ret, tmp, strlen(tmp) + 1);
return(ret); return(ret);
} }

View File

@@ -324,8 +324,14 @@ void FCEUSS_CheckStates(void)
for (ssel = 0; ssel < 10; ssel++) for (ssel = 0; ssel < 10; ssel++)
{ {
st = fopen(fn = FCEU_MakeFName(FCEUMKF_STATE, ssel, 0), "rb"); fn = FCEU_MakeFName(FCEUMKF_STATE, ssel, 0);
free(fn);
if (fn)
{
st = fopen(fn, "rb");
free(fn);
}
if (st) if (st)
{ {
SaveStateStatus[ssel] = 1; SaveStateStatus[ssel] = 1;