From 800ba9d902ffd58baf77276ad2a89308ca459d68 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Sun, 17 Sep 2017 14:05:48 +0300 Subject: [PATCH] Rewrite _sys_strlen --- rpcs3/Emu/Cell/Modules/sys_libc_.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/Cell/Modules/sys_libc_.cpp b/rpcs3/Emu/Cell/Modules/sys_libc_.cpp index 7f3eca9cb8..321f89c815 100644 --- a/rpcs3/Emu/Cell/Modules/sys_libc_.cpp +++ b/rpcs3/Emu/Cell/Modules/sys_libc_.cpp @@ -189,11 +189,22 @@ vm::ptr _sys_memmove(vm::ptr dst, vm::cptr src, u32 size) return dst; } -s64 _sys_strlen(vm::cptr str) +u32 _sys_strlen(vm::cptr str) { sysPrxForUser.trace("_sys_strlen(str=%s)", str); - return std::strlen(str.get_ptr()); + if (!str) + { + return 0; + } + + for (u32 i = 0;; i++) + { + if (str[i] == '\0') + { + return i; + } + } } s32 _sys_strcmp(vm::cptr str1, vm::cptr str2)