From 15fa50f24e0a5016563ea3a4bd1f58304e59dac2 Mon Sep 17 00:00:00 2001 From: raven02 Date: Sat, 9 Aug 2014 20:36:24 +0800 Subject: [PATCH] Return CELL_EFAULT if specified address is invalid --- rpcs3/Emu/SysCalls/lv2/sys_rwlock.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rpcs3/Emu/SysCalls/lv2/sys_rwlock.cpp b/rpcs3/Emu/SysCalls/lv2/sys_rwlock.cpp index 98d8dd60b2..f1eb9d6936 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_rwlock.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_rwlock.cpp @@ -10,6 +10,11 @@ s32 sys_rwlock_create(mem32_t rw_lock_id, mem_ptr_t attr { sys_rwlock.Warning("sys_rwlock_create(rw_lock_id_addr=0x%x, attr_addr=0x%x)", rw_lock_id.GetAddr(), attr.GetAddr()); + if (!rw_lock_id.GetAddr() || !attr.GetAddr()) + { + return CELL_EFAULT; + } + switch (attr->attr_protocol.ToBE()) { case se(attr->attr_protocol, SYS_SYNC_PRIORITY): sys_rwlock.Todo("SYS_SYNC_PRIORITY"); break;