From b6926ced777df0d9f8b9150bfe80619a9aa74087 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 28 Jan 2015 09:26:22 -0500 Subject: [PATCH 1/2] rmsgpack_dom: Add missing va_end call --- libretrodb/rmsgpack_dom.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libretrodb/rmsgpack_dom.c b/libretrodb/rmsgpack_dom.c index 58dd46385a..dcc64a0d73 100644 --- a/libretrodb/rmsgpack_dom.c +++ b/libretrodb/rmsgpack_dom.c @@ -404,7 +404,10 @@ int rmsgpack_dom_read_into(int fd, ...) (void)value_type; if (rv < 0) + { + va_end(ap); return rv; + } if (map.type != RDT_MAP) { From 9c10672646cda5dd81e1f42b7ec1b4811d1a0f8e Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 28 Jan 2015 09:35:32 -0500 Subject: [PATCH 2/2] menu_entries_cbs: Fix a few potential memory leaks --- menu/menu_entries_cbs.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/menu/menu_entries_cbs.c b/menu/menu_entries_cbs.c index ff9c3f13f0..072265ec7c 100644 --- a/menu/menu_entries_cbs.c +++ b/menu/menu_entries_cbs.c @@ -1446,11 +1446,12 @@ static int action_ok_rdb_entry_submenu(const char *path, char *rdb = NULL; int len = 0; struct string_list *str_list = string_split(label, "|"); - struct string_list *str_list2 = string_list_new(); + struct string_list *str_list2 = NULL; if (!str_list) return -1; + str_list2 = string_list_new(); if (!str_list2) { string_list_free(str_list); @@ -3818,7 +3819,7 @@ static int menu_entries_cbs_init_bind_ok_first(menu_file_list_cbs_t *cbs, { char elem0[PATH_MAX_LENGTH]; const char *menu_label = NULL; - struct string_list *str_list = string_split(label, "|"); + struct string_list *str_list = NULL; if (!driver.menu) return -1; @@ -3826,10 +3827,12 @@ static int menu_entries_cbs_init_bind_ok_first(menu_file_list_cbs_t *cbs, menu_list_get_last_stack(driver.menu->menu_list, NULL, &menu_label, NULL); + str_list = string_split(label, "|"); if (str_list && str_list->size > 0) - { strlcpy(elem0, str_list->elems[0].data, sizeof(elem0)); + if (str_list) + { string_list_free(str_list); str_list = NULL; }