diff --git a/configuration.c b/configuration.c index 28840b9bf1..77e4f2303e 100644 --- a/configuration.c +++ b/configuration.c @@ -4752,7 +4752,7 @@ bool config_save_overrides(int override_type) /* Replaces currently loaded configuration file with * another one. Will load a dummy core to flush state * properly. */ -bool config_replace(bool config_save_on_exit, char *path) +bool config_replace(bool config_replace_save_on_exit, char *path) { content_ctx_info_t content_info = {0}; @@ -4764,7 +4764,7 @@ bool config_replace(bool config_save_on_exit, char *path) if (string_is_equal(path, path_get(RARCH_PATH_CONFIG))) return false; - if (config_save_on_exit && !path_is_empty(RARCH_PATH_CONFIG)) + if (config_replace_save_on_exit && !path_is_empty(RARCH_PATH_CONFIG)) config_save_file(path_get(RARCH_PATH_CONFIG)); path_set(RARCH_PATH_CONFIG, path); diff --git a/dirs.c b/dirs.c index 6fbd1aad9b..aa253ceb8e 100644 --- a/dirs.c +++ b/dirs.c @@ -288,6 +288,10 @@ void dir_set(enum rarch_dir_type type, const char *path) static void check_defaults_dir_create_dir(const char *path) { char *new_path = (char*)malloc(PATH_MAX_LENGTH * sizeof(char)); + + if (!new_path) + return; + new_path[0] = '\0'; fill_pathname_expand_special(new_path, path, diff --git a/gfx/video_shader_parse.c b/gfx/video_shader_parse.c index 8837d0755a..7572b298b1 100644 --- a/gfx/video_shader_parse.c +++ b/gfx/video_shader_parse.c @@ -444,6 +444,10 @@ bool video_shader_resolve_current_parameters(config_file_t *conf, return false; parameters = (char*)malloc(param_size); + + if (!parameters) + return false; + parameters[0] = '\0'; /* Read in parameters which override the defaults. */ @@ -1328,6 +1332,9 @@ void video_shader_resolve_relative(struct video_shader *shader, size_t tmp_path_size = 4096 * sizeof(char); char *tmp_path = (char*)malloc(tmp_path_size); + if (!tmp_path) + return; + tmp_path[0] = '\0'; for (i = 0; i < shader->passes; i++) diff --git a/setting_list.c b/setting_list.c index 71e7b04b56..f32319db18 100644 --- a/setting_list.c +++ b/setting_list.c @@ -53,11 +53,15 @@ bool settings_list_append(rarch_setting_t **list, if (list_info->index == list_info->size) { + rarch_setting_t *list_settings = NULL; + list_info->size *= 2; - *list = (rarch_setting_t*) + list_settings = (rarch_setting_t*) realloc(*list, sizeof(rarch_setting_t) * list_info->size); - if (!*list) + + if (!list_settings) return false; + *list = list_settings; } return true; diff --git a/tasks/task_powerstate.c b/tasks/task_powerstate.c index 1c18fe2f3e..0e0fbbfa2b 100644 --- a/tasks/task_powerstate.c +++ b/tasks/task_powerstate.c @@ -66,11 +66,12 @@ static void task_powerstate_handler(retro_task_t *task) void task_push_get_powerstate(void) { - retro_task_t *task = (retro_task_t*)calloc(1, sizeof(*task)); - powerstate_t *state = (powerstate_t*)calloc(1, sizeof(*state)); + retro_task_t *task = (retro_task_t*)calloc(1, sizeof(*task)); + powerstate_t *state = NULL; if (!task) return; + state = (powerstate_t*)calloc(1, sizeof(*state)); if (!state) { free(task); diff --git a/tasks/task_save.c b/tasks/task_save.c index cb5fe7dee7..d79139ad88 100644 --- a/tasks/task_save.c +++ b/tasks/task_save.c @@ -762,6 +762,10 @@ static void task_load_handler_finished(retro_task_t *task, task_set_error(task, strdup("Task canceled")); task_data = (load_task_data_t*)calloc(1, sizeof(*task_data)); + + if (!task_data) + return; + memcpy(task_data, state, sizeof(*task_data)); task_set_data(task, task_data);