From 79f7afcaae7c71b7423533474f721dc7cb853f37 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Fri, 19 Nov 2010 16:36:15 +0000 Subject: [PATCH] Fix GetProcessName on POSIX. --- os_posix.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/os_posix.cpp b/os_posix.cpp index 5b27519..b13646f 100644 --- a/os_posix.cpp +++ b/os_posix.cpp @@ -53,19 +53,24 @@ ReleaseMutex(void) bool GetProcessName(char *str, size_t size) { + ssize_t len; char szProcessPath[PATH_MAX + 1]; char *lpProcessName; // http://stackoverflow.com/questions/1023306/finding-current-executables-path-without-proc-self-exe - if (readlink("/proc/self/exe", szProcessPath, sizeof(szProcessPath) - 1) == -1) { + len = readlink("/proc/self/exe", szProcessPath, sizeof(szProcessPath) - 1); + if (len == -1) { *str = 0; return false; } + szProcessPath[len] = 0; lpProcessName = strrchr(szProcessPath, '/'); lpProcessName = lpProcessName ? lpProcessName + 1 : szProcessPath; - + strncpy(str, lpProcessName, size); + if (size) + str[size - 1] = 0; return true; } -- 2.43.0