From 0b3fdf0cef738c76d184bd79c8c56d3caf8d92e8 Mon Sep 17 00:00:00 2001 From: ANR2ME Date: Sat, 6 Aug 2022 11:22:38 +0700 Subject: [PATCH] Use safe_string when printing %s with Memory::GetCharPointer. --- Common/StringUtils.cpp | 4 ++++ Common/StringUtils.h | 2 ++ Core/HLE/sceNp2.cpp | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Common/StringUtils.cpp b/Common/StringUtils.cpp index e3d67c5a78..c4b88c4c3a 100644 --- a/Common/StringUtils.cpp +++ b/Common/StringUtils.cpp @@ -55,6 +55,10 @@ void truncate_cpy(char *dest, size_t destSize, const char *src) { } } +const char* safe_string(const char* s) { + return s ? s : "(null)"; +} + long parseHexLong(std::string s) { long value = 0; diff --git a/Common/StringUtils.h b/Common/StringUtils.h index 696018e35d..989fe8b9fd 100644 --- a/Common/StringUtils.h +++ b/Common/StringUtils.h @@ -84,6 +84,8 @@ inline void truncate_cpy(char(&out)[Count], const char *src) { truncate_cpy(out, Count, src); } +const char* safe_string(const char* s); + long parseHexLong(std::string s); long parseLong(std::string s); std::string StringFromFormat(const char* format, ...); diff --git a/Core/HLE/sceNp2.cpp b/Core/HLE/sceNp2.cpp index 166029bad4..98a50b1fa8 100644 --- a/Core/HLE/sceNp2.cpp +++ b/Core/HLE/sceNp2.cpp @@ -80,7 +80,7 @@ static int sceNpMatching2Term() static int sceNpMatching2CreateContext(u32 communicationIdPtr, u32 passPhrasePtr, u32 ctxIdPtr, int unknown) { - ERROR_LOG(SCENET, "UNIMPL %s(%08x[%s], %08x[%08x], %08x[%hu], %i) at %08x", __FUNCTION__, communicationIdPtr, Memory::GetCharPointer(communicationIdPtr), passPhrasePtr, Memory::Read_U32(passPhrasePtr), ctxIdPtr, Memory::Read_U16(ctxIdPtr), unknown, currentMIPS->pc); + ERROR_LOG(SCENET, "UNIMPL %s(%08x[%s], %08x[%08x], %08x[%hu], %i) at %08x", __FUNCTION__, communicationIdPtr, safe_string(Memory::GetCharPointer(communicationIdPtr)), passPhrasePtr, Memory::Read_U32(passPhrasePtr), ctxIdPtr, Memory::Read_U16(ctxIdPtr), unknown, currentMIPS->pc); if (!npMatching2Inited) return hleLogError(SCENET, SCE_NP_MATCHING2_ERROR_NOT_INITIALIZED);