From c7c645eb9e01ab96693b865aa26f16713f9620df Mon Sep 17 00:00:00 2001 From: Thorsten Otto Date: Thu, 14 Mar 2024 15:28:37 +0100 Subject: [PATCH] Avoid concatenating empty paths --- common/paths_posix.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/common/paths_posix.cpp b/common/paths_posix.cpp index f45d187d..646061bf 100644 --- a/common/paths_posix.cpp +++ b/common/paths_posix.cpp @@ -139,6 +139,7 @@ const char* PathsClass::Program_Path() path = (char*)malloc(size); if (!_NSGetExecutablePath(path, &size)) { free(path); + ProgramPath = "."; return ProgramPath.c_str(); } } @@ -160,12 +161,14 @@ const char* PathsClass::Program_Path() size_t size = sizeof(buffer1); if (sysctl(mib, (u_int)(sizeof(mib) / sizeof(mib[0])), path, &size, NULL, 0) != 0) { + ProgramPath = "."; return ProgramPath.c_str(); } resolved = realpath(path, buffer); #endif if (!resolved) { + ProgramPath = "."; return ProgramPath.c_str(); } @@ -243,7 +246,9 @@ bool PathsClass::Is_Absolute(const char* path) std::string PathsClass::Concatenate_Paths(const char* path1, const char* path2) { - return std::string(path1) + SEP + path2; + if (path1 != NULL && *path1 != '\0') + return std::string(path1) + SEP + path2; + return std::string(path2); } std::string PathsClass::Argv_Path(const char* cmd_arg)