helper/fileio: Fix memory leak.

The memory leak occurs when opening a file fails. It can be
reproduced by using the "flash verify_bank" command with a filename
that does not exist.

Change-Id: I60b7b545c18793d750ff75d08124fde3f0aa6f64
Signed-off-by: Marc Schink <openocd-dev@marcschink.de>
Reviewed-on: http://openocd.zylin.com/2998
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
__archive__
Marc Schink 2015-10-02 17:12:17 +02:00 committed by Freddie Chopin
parent 24d9f0cfa0
commit 627f1cb354
1 changed files with 12 additions and 4 deletions

View File

@ -109,10 +109,10 @@ int fileio_open(struct fileio *fileio_p,
enum fileio_access access_type,
enum fileio_type type)
{
int retval = ERROR_OK;
int retval;
struct fileio_internal *fileio;
struct fileio_internal *fileio = malloc(sizeof(struct fileio_internal));
fileio_p->fp = fileio;
fileio = malloc(sizeof(struct fileio_internal));
fileio->type = type;
fileio->access = access_type;
@ -120,7 +120,15 @@ int fileio_open(struct fileio *fileio_p,
retval = fileio_open_local(fileio);
return retval;
if (retval != ERROR_OK) {
free(fileio->url);
free(fileio);
return retval;
}
fileio_p->fp = fileio;
return ERROR_OK;
}
static inline int fileio_close_local(struct fileio_internal *fileio)