From c4d8a8c8008bad786fb072da36643ffb278c79d8 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 11 Dec 2017 20:24:00 +0100 Subject: [PATCH] Free after intfstream_close --- cheevos/cheevos.c | 2 ++ gfx/drivers/gx_gfx.c | 1 + gfx/video_shader_parse.c | 1 + movie.c | 1 + playlist.c | 1 + tasks/task_database.c | 2 +- tasks/task_database_cue.c | 1 + tasks/task_save.c | 5 +++++ 8 files changed, 13 insertions(+), 1 deletion(-) diff --git a/cheevos/cheevos.c b/cheevos/cheevos.c index dae27cbb5c..5d1c7515ac 100644 --- a/cheevos/cheevos.c +++ b/cheevos/cheevos.c @@ -2661,6 +2661,7 @@ static int cheevos_iterate(coro_t* coro) if (!CHEEVOS_VAR_DATA) { intfstream_close(CHEEVOS_VAR_STREAM); + free(CHEEVOS_VAR_STREAM); CORO_STOP(); } @@ -2687,6 +2688,7 @@ static int cheevos_iterate(coro_t* coro) } intfstream_close(CHEEVOS_VAR_STREAM); + free(CHEEVOS_VAR_STREAM); } /* Use the supported extensions as a hint diff --git a/gfx/drivers/gx_gfx.c b/gfx/drivers/gx_gfx.c index e826b143dd..14b7f61c38 100644 --- a/gfx/drivers/gx_gfx.c +++ b/gfx/drivers/gx_gfx.c @@ -746,6 +746,7 @@ static void gx_efb_screenshot(void) } intfstream_close(out); + free(out); } #endif diff --git a/gfx/video_shader_parse.c b/gfx/video_shader_parse.c index c25d309124..b7a36c7af4 100644 --- a/gfx/video_shader_parse.c +++ b/gfx/video_shader_parse.c @@ -586,6 +586,7 @@ bool video_shader_resolve_parameters(config_file_t *conf, free(line); intfstream_close(file); + free(file); } if (conf && !video_shader_resolve_current_parameters(conf, shader)) diff --git a/movie.c b/movie.c index 1e8f99402a..131062d42c 100644 --- a/movie.c +++ b/movie.c @@ -217,6 +217,7 @@ static void bsv_movie_free(bsv_movie_t *handle) return; intfstream_close(handle->file); + free(handle->file); free(handle->state); free(handle->frame_pos); diff --git a/playlist.c b/playlist.c index 87b7632d9d..ae48833cba 100644 --- a/playlist.c +++ b/playlist.c @@ -550,6 +550,7 @@ static bool playlist_read_file( end: intfstream_close(file); + free(file); return true; } diff --git a/tasks/task_database.c b/tasks/task_database.c index f274fc554b..8c8a26e57d 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -250,8 +250,8 @@ static bool intfstream_file_get_serial(const char *name, rv = intfstream_get_serial(fd, serial); intfstream_close(fd); - free(data); free(fd); + free(data); return rv; error: diff --git a/tasks/task_database_cue.c b/tasks/task_database_cue.c index cb8e366c74..ef43985101 100644 --- a/tasks/task_database_cue.c +++ b/tasks/task_database_cue.c @@ -419,6 +419,7 @@ static ssize_t intfstream_get_file_size(const char *path) return -1; rv = intfstream_get_size(fd); intfstream_close(fd); + free(fd); return rv; } diff --git a/tasks/task_save.c b/tasks/task_save.c index eab39754b1..ed081d89ef 100644 --- a/tasks/task_save.c +++ b/tasks/task_save.c @@ -178,6 +178,7 @@ static void autosave_thread(void *data) failed |= ((size_t)intfstream_write(file, save->buffer, save->bufsize) != save->bufsize); failed |= (intfstream_flush(file) != 0); failed |= (intfstream_close(file) != 0); + free(file); if (failed) RARCH_WARN("Failed to autosave SRAM. Disk might be full.\n"); } @@ -532,6 +533,7 @@ static void task_save_handler_finished(retro_task_t *task, task_set_finished(task, true); intfstream_close(state->file); + free(state->file); if (!task_get_error(task) && task_get_cancelled(task)) task_set_error(task, strdup("Task canceled")); @@ -713,7 +715,10 @@ static void task_load_handler_finished(retro_task_t *task, task_set_finished(task, true); if (state->file) + { intfstream_close(state->file); + free(state->file); + } if (!task_get_error(task) && task_get_cancelled(task)) task_set_error(task, strdup("Task canceled"));