mirror of
https://github.com/libretro/RetroArch
synced 2025-02-06 09:40:06 +00:00
frontend: Fix possible memory leaks in lakka, rgui, and rmenu
This commit is contained in:
parent
c7733f705b
commit
14189c08a2
@ -1118,31 +1118,28 @@ static void *lakka_init(void)
|
||||
}
|
||||
|
||||
menu = (menu_handle_t*)calloc(1, sizeof(*menu));
|
||||
|
||||
if (!menu)
|
||||
return NULL;
|
||||
|
||||
menu->userdata = (lakka_handle_t*)calloc(1, sizeof(lakka_handle_t));
|
||||
if (!menu->userdata)
|
||||
{
|
||||
free(menu);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
lakka_init_core_info(menu);
|
||||
|
||||
menu->userdata = (lakka_handle_t*)calloc(1, sizeof(lakka_handle_t));
|
||||
|
||||
if (!menu->userdata)
|
||||
return NULL;
|
||||
|
||||
lakka = (lakka_handle_t*)menu->userdata;
|
||||
|
||||
if (!lakka)
|
||||
return NULL;
|
||||
|
||||
lakka->num_categories = g_extern.core_info ? (g_extern.core_info->count + 1) : 1;
|
||||
|
||||
lakka->categories = (menu_category_t*)
|
||||
calloc(lakka->num_categories, sizeof(menu_category_t));
|
||||
|
||||
if (!lakka->categories)
|
||||
{
|
||||
free(menu->userdata);
|
||||
free(menu);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -408,17 +408,20 @@ static void *rgui_init(void)
|
||||
menu->userdata = (rgui_handle_t*)calloc(1, sizeof(rgui_handle_t));
|
||||
|
||||
if (!menu->userdata)
|
||||
{
|
||||
free(menu);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
rgui_handle_t *rgui = (rgui_handle_t*)menu->userdata;
|
||||
|
||||
if (!rgui)
|
||||
return NULL;
|
||||
|
||||
|
||||
menu->frame_buf = (uint16_t*)malloc(400 * 240 * sizeof(uint16_t));
|
||||
|
||||
if (!menu->frame_buf)
|
||||
{
|
||||
free(menu);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
menu->width = 320;
|
||||
menu->height = 240;
|
||||
@ -431,6 +434,9 @@ static void *rgui_init(void)
|
||||
RARCH_ERR("No font bitmap or binary, abort");
|
||||
|
||||
rarch_main_command(RARCH_CMD_QUIT_RETROARCH);
|
||||
|
||||
free(menu->userdata);
|
||||
free(menu);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -308,7 +308,10 @@ static void *rmenu_init(void)
|
||||
menu_texture = (struct texture_image*)calloc(1, sizeof(*menu_texture));
|
||||
|
||||
if (!menu_texture)
|
||||
{
|
||||
free(menu);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user