diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index cd3a2601ff..7a1e4c7c51 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -299,12 +299,15 @@ void cb_net_generic(void *task_data, void *user_data, const char *err) menu_handle_t *menu = menu_driver_get_ptr(); http_transfer_data_t *data = (http_transfer_data_t*)task_data; - if (!menu || !data || err) - goto finish; - if (core_buf) free(core_buf); + core_buf = NULL; + core_len = 0; + + if (!menu || !data || err) + goto finish; + core_buf = (char*)malloc((data->len+1) * sizeof(char)); if (!core_buf) @@ -314,9 +317,9 @@ void cb_net_generic(void *task_data, void *user_data, const char *err) core_buf[data->len] = '\0'; core_len = data->len; +finish: menu_entries_unset_refresh(true); -finish: if (err) RARCH_ERR("Download failed: %s\n", err); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index bd82fa392e..edeefbfa6e 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -55,6 +55,9 @@ static void print_buf_lines(file_list_t *list, char *buf, int buf_size, int i, j = 0; char *line_start = buf; + if (!buf) + menu_entries_push(list, "No entries to display.", "", MENU_FILE_NONE, 0, 0); + for (i = 0; i < buf_size; i++) { size_t ln;