mirror of
https://github.com/libretro/RetroArch
synced 2025-04-10 06:44:27 +00:00
VITA: fix crash when boot params is missing
This commit is contained in:
parent
64c0abdf0c
commit
9e9e9af8dd
@ -342,25 +342,30 @@ static void frontend_psp_exec(const char *path, bool should_load_game)
|
|||||||
RARCH_LOG("Attempt to load executable: [%s].\n", path);
|
RARCH_LOG("Attempt to load executable: [%s].\n", path);
|
||||||
#if defined(VITA)
|
#if defined(VITA)
|
||||||
RARCH_LOG("Attempt to load executable: %d [%s].\n", args, argp);
|
RARCH_LOG("Attempt to load executable: %d [%s].\n", args, argp);
|
||||||
|
int ret;
|
||||||
#ifdef IS_SALAMANDER
|
#ifdef IS_SALAMANDER
|
||||||
sceAppMgrGetAppParam(boot_params);
|
sceAppMgrGetAppParam(boot_params);
|
||||||
if (strstr(boot_params,"psgm:play"))
|
if (strstr(boot_params,"psgm:play"))
|
||||||
{
|
{
|
||||||
int ret;
|
char *param1 = strstr(boot_params, "¶m=");
|
||||||
char *param1 = strstr(boot_params, "¶m=")+7;
|
|
||||||
char *param2 = strstr(boot_params, "¶m2=");
|
char *param2 = strstr(boot_params, "¶m2=");
|
||||||
memcpy(core_name, param1, param2 - param1);
|
if (param1 != NULL && param2 != NULL)
|
||||||
core_name[param2-param1] = 0;
|
{
|
||||||
sprintf(argp, param2 + 8);
|
param1 += 7;
|
||||||
ret = sceAppMgrLoadExec(core_name, (char * const*)((const char*[]){argp, 0}), NULL);
|
memcpy(core_name, param1, param2 - param1);
|
||||||
RARCH_LOG("Attempt to load executable: [%d].\n", ret);
|
core_name[param2-param1] = 0;
|
||||||
|
sprintf(argp, param2 + 8);
|
||||||
|
ret = sceAppMgrLoadExec(core_name, (char * const*)((const char*[]){argp, 0}), NULL);
|
||||||
|
RARCH_LOG("Attempt to load executable: [%d].\n", ret);
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
RARCH_LOG("Required boot params missing. Continue nornal boot.");
|
||||||
}
|
}
|
||||||
else
|
|
||||||
#endif
|
#endif
|
||||||
{
|
ret = sceAppMgrLoadExec(path, args == 0 ? NULL : (char * const*)((const char*[]){argp, 0}), NULL);
|
||||||
int ret = sceAppMgrLoadExec(path, args == 0 ? NULL : (char * const*)((const char*[]){argp, 0}), NULL);
|
RARCH_LOG("Attempt to load executable: [%d].\n", ret);
|
||||||
RARCH_LOG("Attempt to load executable: [%d].\n", ret);
|
exit:
|
||||||
}
|
return;
|
||||||
#else
|
#else
|
||||||
exitspawn_kernel(path, args, argp);
|
exitspawn_kernel(path, args, argp);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user