From 0e72cc879f74646ecadc1dcca35b61be206a576c Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Sun, 17 Sep 2017 15:43:58 +0300 Subject: [PATCH] Rewrite _sys_strcpy --- rpcs3/Emu/Cell/Modules/sys_libc_.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/rpcs3/Emu/Cell/Modules/sys_libc_.cpp b/rpcs3/Emu/Cell/Modules/sys_libc_.cpp index 0e1afb79b1..3ac6d0c5b9 100644 --- a/rpcs3/Emu/Cell/Modules/sys_libc_.cpp +++ b/rpcs3/Emu/Cell/Modules/sys_libc_.cpp @@ -277,13 +277,17 @@ vm::ptr _sys_strncat(vm::ptr dest, vm::cptr source, u32 len) return dest; } -vm::ptr _sys_strcpy(vm::ptr dest, vm::cptr source) +vm::ptr _sys_strcpy(vm::ptr dst, vm::cptr src) { - sysPrxForUser.trace("_sys_strcpy(dest=*0x%x, source=%s)", dest, source); + sysPrxForUser.trace("_sys_strcpy(dst=*0x%x, src=%s)", dst, src); - verify(HERE), std::strcpy(dest.get_ptr(), source.get_ptr()) == dest.get_ptr(); - - return dest; + for (u32 i = 0;; i++) + { + if (!(dst[i] = src[i])) + { + return dst; + } + } } vm::ptr _sys_strncpy(vm::ptr dest, vm::cptr source, u32 len)