Added realloc error checking in convert_fcm function to fix cppcheck warning.

This commit is contained in:
harry 2023-01-21 12:32:52 -05:00
parent b9385118bd
commit 44a5c58e44
2 changed files with 20 additions and 4 deletions

View File

@ -48,7 +48,7 @@ static uint8 joop[4];
static uint8 joopcmd;
static uint32 framets = 0;
static uint32 frameptr = 0;
static uint8* moviedata = NULL;
static uint8* moviedata = nullptr;
static uint32 moviedatasize = 0;
static uint32 firstframeoffset = 0;
static uint32 savestate_offset = 0;
@ -626,7 +626,19 @@ EFCM_CONVERTRESULT convert_fcm(MovieData& md, std::string fname)
//ResetInputTypes();
fp->fseek(firstframeoffset,SEEK_SET);
moviedata = (uint8*)realloc(moviedata, moviedatasize);
uint8 *newMovieData = (uint8*)realloc(moviedata, moviedatasize);
if (newMovieData)
{
moviedata = newMovieData;
}
else
{
if (moviedata)
{
free(moviedata); moviedata = nullptr;
}
return FCM_CONVERTRESULT_REALLOC_FAIL;
}
fp->fread((char*)moviedata,moviedatasize);
frameptr = 0;
@ -669,8 +681,11 @@ EFCM_CONVERTRESULT convert_fcm(MovieData& md, std::string fname)
md.ports[0] = md.ports[1] = SI_GAMEPAD;
}
free(moviedata);
moviedata = 0;
if (moviedata)
{
free(moviedata);
moviedata = nullptr;
}
delete fp;
return FCM_CONVERTRESULT_SUCCESS;

View File

@ -10,6 +10,7 @@ enum EFCM_CONVERTRESULT
FCM_CONVERTRESULT_OLDVERSION,
FCM_CONVERTRESULT_UNSUPPORTEDVERSION,
FCM_CONVERTRESULT_STARTFROMSAVESTATENOTSUPPORTED,
FCM_CONVERTRESULT_REALLOC_FAIL,
};
inline const char * EFCM_CONVERTRESULT_message(EFCM_CONVERTRESULT e)