From e212f16962a90e976fb9ba498b6515e16cb3c090 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Thu, 1 Jul 2021 22:15:25 +0200 Subject: [PATCH] sceNp: fix invalid ctx dereference Fixes "Buzz! Quiz Player" Offline Gameplay --- rpcs3/Emu/Cell/Modules/sceNpCommerce2.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/Cell/Modules/sceNpCommerce2.cpp b/rpcs3/Emu/Cell/Modules/sceNpCommerce2.cpp index adba0e11ec..0581a70513 100644 --- a/rpcs3/Emu/Cell/Modules/sceNpCommerce2.cpp +++ b/rpcs3/Emu/Cell/Modules/sceNpCommerce2.cpp @@ -107,7 +107,10 @@ s32 sceNpCommerce2DestroyCtx(u32 ctx_id) { sceNpCommerce2.warning("sceNpCommerce2DestroyCtx(ctx_id=%d)", ctx_id); - destroy_commerce2_context(ctx_id); + if (!destroy_commerce2_context(ctx_id)) + { + return SCE_NP_COMMERCE2_ERROR_CTX_NOT_FOUND; // TODO: verify + } return CELL_OK; } @@ -118,6 +121,11 @@ s32 sceNpCommerce2EmptyStoreCheckStart(u32 ctx_id, s32 store_check_type, vm::cpt const auto ctx = get_commerce2_context(ctx_id); + if (!ctx) + { + return SCE_NP_COMMERCE2_ERROR_CTX_NOT_FOUND; // TODO: verify + } + if (ctx->context_callback) { sysutil_register_cb([=](ppu_thread& cb_ppu) -> s32 @@ -149,6 +157,11 @@ s32 sceNpCommerce2CreateSessionStart(u32 ctx_id) const auto ctx = get_commerce2_context(ctx_id); + if (!ctx) + { + return SCE_NP_COMMERCE2_ERROR_CTX_NOT_FOUND; // TODO: verify + } + if (ctx->context_callback) { sysutil_register_cb([=](ppu_thread& cb_ppu) -> s32