From 0cbbd3a5b1f340082972dd8d16aefd0852557318 Mon Sep 17 00:00:00 2001 From: Farseer Date: Wed, 6 Sep 2017 01:19:47 +0300 Subject: [PATCH] Trophy fixes Should fix Kung Fu Panda 2 Raging Blast 2 --- rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp b/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp index d69a6ad143..3be7ed912b 100644 --- a/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp +++ b/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp @@ -181,9 +181,8 @@ error_code sceNpTrophyCreateContext(vm::ptr context, vm::cptrterm, commId->data, commId->num); if (commId->term) { - char trimchar[9]; - memcpy(trimchar, commId->data, sizeof(trimchar)); - trimchar[8] = 0; + char trimchar[10] = { 0 }; + memcpy(trimchar, commId->data, sizeof(trimchar) - 1); deleteTerminateChar(trimchar, commId->term); name = fmt::format("%s_%02d", trimchar, commId->num); } @@ -477,7 +476,7 @@ error_code sceNpTrophyUnlockTrophy(u32 context, u32 handle, s32 trophyId, vm::pt return SCE_NP_TROPHY_ERROR_UNKNOWN_HANDLE; } - if (trophyId >= (s32)ctxt->tropusr->GetTrophiesCount()) + if (trophyId < 0 || trophyId >= (s32)ctxt->tropusr->GetTrophiesCount()) return SCE_NP_TROPHY_ERROR_INVALID_TROPHY_ID; if (ctxt->tropusr->GetTrophyUnlockState(trophyId)) return SCE_NP_TROPHY_ERROR_ALREADY_UNLOCKED;