mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
(ovr) fix potential leaks
This commit is contained in:
parent
c9a6a8f148
commit
50e8021673
@ -3199,6 +3199,17 @@ bool config_save_file(const char *path)
|
||||
config_file_t *conf = config_file_new(path);
|
||||
settings_t *settings = config_get_ptr();
|
||||
global_t *global = global_get_ptr();
|
||||
|
||||
if (!conf)
|
||||
conf = config_file_new(NULL);
|
||||
|
||||
if (!conf || runloop_ctl(RUNLOOP_CTL_IS_OVERRIDES_ACTIVE, NULL))
|
||||
{
|
||||
if (conf)
|
||||
config_file_free(conf);
|
||||
return false;
|
||||
}
|
||||
|
||||
struct config_bool_setting *bool_settings =
|
||||
(struct config_bool_setting*) malloc(PATH_MAX_LENGTH * sizeof(struct config_bool_setting));
|
||||
int bool_settings_size = 0;
|
||||
@ -3225,18 +3236,6 @@ bool config_save_file(const char *path)
|
||||
string_settings_size = populate_settings_string(settings, string_settings);
|
||||
path_settings_size = populate_settings_path (settings, path_settings);
|
||||
|
||||
|
||||
|
||||
if (!conf)
|
||||
conf = config_file_new(NULL);
|
||||
|
||||
if (!conf || runloop_ctl(RUNLOOP_CTL_IS_OVERRIDES_ACTIVE, NULL))
|
||||
{
|
||||
if (conf)
|
||||
config_file_free(conf);
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Path settings
|
||||
*
|
||||
@ -3382,6 +3381,7 @@ bool config_save_file(const char *path)
|
||||
free(float_settings);
|
||||
free(string_settings);
|
||||
free(path_settings);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -3408,9 +3408,21 @@ bool config_save_overrides(int override_type)
|
||||
|
||||
global_t *global = global_get_ptr();
|
||||
settings_t *overrides = config_get_ptr();
|
||||
settings_t *settings = (settings_t*)calloc(1, sizeof(settings_t));
|
||||
|
||||
rarch_system_info_t *system = NULL;
|
||||
|
||||
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||
|
||||
if (system)
|
||||
core_name = system->info.library_name;
|
||||
if (global)
|
||||
game_name = path_basename(global->name.base);
|
||||
|
||||
if (string_is_empty(core_name) || string_is_empty(game_name))
|
||||
return false;
|
||||
|
||||
settings_t *settings = (settings_t*)calloc(1, sizeof(settings_t));
|
||||
|
||||
struct config_bool_setting *bool_settings =
|
||||
(struct config_bool_setting*) malloc(PATH_MAX_LENGTH *sizeof(struct config_bool_setting));
|
||||
struct config_bool_setting *bool_overrides =
|
||||
@ -3442,16 +3454,6 @@ bool config_save_overrides(int override_type)
|
||||
int string_settings_size = 0;
|
||||
int path_settings_size = 0;
|
||||
|
||||
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||
|
||||
if (system)
|
||||
core_name = system->info.library_name;
|
||||
if (global)
|
||||
game_name = path_basename(global->name.base);
|
||||
|
||||
if (string_is_empty(core_name) || string_is_empty(game_name))
|
||||
return false;
|
||||
|
||||
fill_pathname_application_special(config_directory, sizeof(config_directory),
|
||||
APPLICATION_SPECIAL_DIRECTORY_CONFIG);
|
||||
|
||||
@ -3568,7 +3570,7 @@ bool config_save_overrides(int override_type)
|
||||
config_file_free(conf);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
ret = false;
|
||||
|
||||
free(bool_settings);
|
||||
free(bool_overrides);
|
||||
|
Loading…
x
Reference in New Issue
Block a user