mirror of
https://github.com/libretro/RetroArch
synced 2025-03-03 04:14:00 +00:00
menu_settings_free - prevent null pointer indirections
This commit is contained in:
parent
3f959637f2
commit
d9f4675a51
@ -8740,14 +8740,14 @@ static bool setting_append_list(
|
||||
return true;
|
||||
}
|
||||
|
||||
bool menu_setting_free(void *data)
|
||||
void menu_setting_free(void *data)
|
||||
{
|
||||
unsigned values, n;
|
||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||
rarch_setting_t **list = &setting;
|
||||
|
||||
if (!setting)
|
||||
return false;
|
||||
return;
|
||||
|
||||
/* Free data which was previously tagged */
|
||||
for (; setting_get_type(setting) != ST_NONE; (*list = *list + 1))
|
||||
@ -8756,24 +8756,26 @@ bool menu_setting_free(void *data)
|
||||
switch (1 << n)
|
||||
{
|
||||
case SD_FREE_FLAG_VALUES:
|
||||
free((void*)setting->values);
|
||||
if (setting->values)
|
||||
free((void*)setting->values);
|
||||
setting->values = NULL;
|
||||
break;
|
||||
case SD_FREE_FLAG_NAME:
|
||||
free((void*)setting->name);
|
||||
if (setting->name)
|
||||
free((void*)setting->name);
|
||||
setting->name = NULL;
|
||||
break;
|
||||
case SD_FREE_FLAG_SHORT:
|
||||
free((void*)setting->short_description);
|
||||
if (setting->short_description)
|
||||
free((void*)setting->short_description);
|
||||
setting->short_description = NULL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
free(data);
|
||||
|
||||
return true;
|
||||
if (data)
|
||||
free(data);
|
||||
}
|
||||
|
||||
static void menu_setting_terminate_last(rarch_setting_t *list, unsigned pos)
|
||||
|
@ -162,7 +162,7 @@ void menu_settings_list_current_add_enum_value_idx(
|
||||
rarch_setting_info_t *list_info,
|
||||
enum msg_hash_enums enum_idx);
|
||||
|
||||
bool menu_setting_free(void *data);
|
||||
void menu_setting_free(void *data);
|
||||
|
||||
bool settings_list_append(rarch_setting_t **list,
|
||||
rarch_setting_info_t *list_info);
|
||||
|
Loading…
x
Reference in New Issue
Block a user