From 09b10943b211c691569bba7a18dbf402e9ee2840 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 23 May 2016 14:42:22 +0200 Subject: [PATCH] retroarch_get_current_savefile_dir - prevent memory leak --- retroarch.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/retroarch.c b/retroarch.c index c8a58b18f7..77c47e64be 100644 --- a/retroarch.c +++ b/retroarch.c @@ -405,13 +405,16 @@ static void retroarch_set_special_paths(char **argv, unsigned num_content) const char *retroarch_get_current_savefile_dir(void) { - global_t *global = global_get_ptr(); - - char* ret = strdup(global->name.base); + char* ret = NULL; + if (!string_is_empty(current_savefile_dir)) ret = current_savefile_dir; else + { + global_t *global = global_get_ptr(); + ret = strdup(global->name.base); path_basedir(ret); + } RARCH_LOG("Environ SAVE_DIRECTORY: \"%s\".\n", ret); @@ -429,11 +432,13 @@ static void retroarch_set_paths_redirect(const char *path) rarch_system_info_t *info = NULL; runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &info); + if (!global) { RARCH_WARN("retroarch_set_paths_redirect was sent a NULL \"global\" pointer."); return; } + if (info->info.library_name && !string_is_empty(info->info.library_name)) global_library_name_hash =