diff --git a/libretro-common/file/nbio/nbio_stdio.c b/libretro-common/file/nbio/nbio_stdio.c index 28348c9e4a..6e2a2f6f34 100644 --- a/libretro-common/file/nbio/nbio_stdio.c +++ b/libretro-common/file/nbio/nbio_stdio.c @@ -199,4 +199,8 @@ void nbio_free(struct nbio_t* handle) } fclose(handle->f); free(handle->data); + + handle->f = NULL; + handle->data = NULL; + free(handle); } diff --git a/libretro-common/formats/png/rpng_nbio.c b/libretro-common/formats/png/rpng_nbio.c index a87c30c9c8..ac73cd1645 100644 --- a/libretro-common/formats/png/rpng_nbio.c +++ b/libretro-common/formats/png/rpng_nbio.c @@ -227,8 +227,7 @@ void rpng_nbio_load_image_free(struct rpng_t *rpng) free(rpng->process.stream); } - if (rpng) - free(rpng); + free(rpng); } bool rpng_nbio_load_image_argb_start(struct rpng_t *rpng) diff --git a/tasks/task_file_transfer.c b/tasks/task_file_transfer.c index d47e1492b1..ac94222c34 100644 --- a/tasks/task_file_transfer.c +++ b/tasks/task_file_transfer.c @@ -332,7 +332,7 @@ static int cb_nbio_generic(nbio_handle_t *nbio, size_t *len) if (!ptr) { - free(nbio->image.handle); + rpng_nbio_load_image_free(nbio->image.handle); nbio->image.handle = NULL; nbio->image.cb = NULL;