From a33778cb8778bc8baeb5e590da533f68b4a16256 Mon Sep 17 00:00:00 2001 From: radius Date: Thu, 9 Feb 2017 21:10:40 -0500 Subject: [PATCH] fix crashes when trying to connect with contentless cores --- tasks/task_netplay_find_content.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tasks/task_netplay_find_content.c b/tasks/task_netplay_find_content.c index adb32837a2..00ac723ceb 100644 --- a/tasks/task_netplay_find_content.c +++ b/tasks/task_netplay_find_content.c @@ -57,7 +57,8 @@ static void netplay_crc_scan_callback(void *task_data, return; fflush(stdout); - if (!string_is_empty(state->core_path) && !string_is_empty(state->content_path)) + if (!string_is_empty(state->core_path) && !string_is_empty(state->content_path) && + !string_is_equal(state->content_path, "N/A")) { command_event(CMD_EVENT_NETPLAY_INIT_DIRECT_DEFERRED, state->hostname); task_push_content_load_default( @@ -67,15 +68,22 @@ static void netplay_crc_scan_callback(void *task_data, CONTENT_MODE_LOAD_CONTENT_WITH_NEW_CORE_FROM_MENU, NULL, NULL); } - else if(string_is_equal(state->content_path, "N/A")) + else if (!string_is_empty(state->core_path) && !string_is_empty(state->content_path) && + string_is_equal(state->content_path, "N/A")) { printf("Content: %s Core: %s\n", state->content_path, state->core_path); task_push_content_load_default( state->core_path, NULL, - NULL, + &content_info, CORE_TYPE_PLAIN, CONTENT_MODE_LOAD_NOTHING_WITH_NEW_CORE_FROM_MENU, NULL, NULL); + task_push_content_load_default( + state->core_path, NULL, + &content_info, + CORE_TYPE_PLAIN, + CONTENT_MODE_LOAD_NOTHING_WITH_CURRENT_CORE_FROM_MENU, + NULL, NULL); } else { @@ -263,8 +271,12 @@ bool task_push_netplay_crc_scan(uint32_t crc, char* name, if(string_is_equal(info->list[i].core_name, state->core_name)) { strlcpy(state->core_path, info->list[i].path, sizeof(state->core_path)); - strlcpy(state->core_extensions, - info->list[i].supported_extensions, sizeof(state->core_extensions)); + + if (!string_is_equal(state->content_path, "N/A")) + { + strlcpy(state->core_extensions, + info->list[i].supported_extensions, sizeof(state->core_extensions)); + } break; } }