loadFile: fix double free

This commit is contained in:
Philippe Teuwen 2019-03-08 19:49:12 +01:00
commit abddff513e
3 changed files with 6 additions and 12 deletions

View file

@ -248,6 +248,7 @@ int CmdFlashMemLoad(const char *Cmd){
res = loadFile(filename, "bin", data, &datalen);
//int res = loadFileEML( filename, "eml", data, &datalen);
if ( res ) {
free(data);
return 1;
}

View file

@ -257,6 +257,7 @@ int loadFile(const char *preferredName, const char *suffix, void* data, size_t*
if ( preferredName == NULL ) return 1;
if ( suffix == NULL ) return 1;
if ( data == NULL ) return 1;
int retval = 0;
int size = sizeof(char) * (strlen(preferredName) + strlen(suffix) + 10);
@ -297,10 +298,6 @@ int loadFile(const char *preferredName, const char *suffix, void* data, size_t*
goto out;
}
if ( (data) == NULL) {
(data) = calloc( bytes_read, sizeof(uint8_t));
}
memcpy( (data), dump, bytes_read);
free(dump);
@ -310,10 +307,6 @@ int loadFile(const char *preferredName, const char *suffix, void* data, size_t*
out:
fclose(f);
if (data)
free(data);
free(fileName);
return retval;