From 59c79507295a3e3a470004fdc9502681674fdfec Mon Sep 17 00:00:00 2001 From: InvoxiPlayGames Date: Sat, 18 Jan 2025 09:47:57 +0000 Subject: [PATCH] sys_prx: use vm read_string in module_id_by_name --- rpcs3/Emu/Cell/lv2/sys_prx.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/Cell/lv2/sys_prx.cpp b/rpcs3/Emu/Cell/lv2/sys_prx.cpp index 6275ba8126..21a4f55000 100644 --- a/rpcs3/Emu/Cell/lv2/sys_prx.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_prx.cpp @@ -1089,9 +1089,15 @@ error_code _sys_prx_get_module_id_by_name(ppu_thread& ppu, vm::cptr name, sys_prx.warning("_sys_prx_get_module_id_by_name(name=%s, flags=%d, pOpt=*0x%x)", name, flags, pOpt); + std::string module_name; + if (!vm::read_string(name.addr(), 28, module_name)) + { + return CELL_EINVAL; + } + const auto [prx, id] = idm::select([&](u32 id, lv2_prx& prx) -> u32 { - if (strncmp(name.get_ptr(), prx.module_info_name, sizeof(prx.module_info_name)) == 0) + if (strncmp(module_name.c_str(), prx.module_info_name, sizeof(prx.module_info_name)) == 0) { return id; }