From: José Fonseca Date: Fri, 19 Nov 2010 16:36:15 +0000 (+0000) Subject: Fix GetProcessName on POSIX. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=79f7afcaae7c71b7423533474f721dc7cb853f37;p=apitrace Fix GetProcessName on POSIX. --- 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; }