frontend: Fix possible memory leaks in lakka, rgui, and rmenu

This commit is contained in:
Lioncash 2014-10-13 16:55:15 -04:00
parent c7733f705b
commit 14189c08a2
3 changed files with 21 additions and 15 deletions

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}