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__
parent
24d9f0cfa0
commit
627f1cb354
|
@ -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);
|
||||
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue