Shell (macOS): fixes exePath not reports absolute paths

This commit is contained in:
李通洲
2026-01-09 16:08:54 +08:00
parent 03aab33507
commit d43ed33661
+9 -4
View File
@@ -320,16 +320,21 @@ void ffProcessGetInfoLinux(pid_t pid, FFstrbuf* processName, FFstrbuf* exe, cons
ffStrbufSetS(exe, arg0);
}
}
else
if (exePath || exe->length == 0)
{
char buf[PROC_PIDPATHINFO_MAXSIZE];
int length = proc_pidpath(pid, buf, ARRAY_SIZE(buf));
if (length > 0)
{
ffStrbufEnsureFixedLengthFree(exe, (uint32_t) length);
ffStrbufAppendNS(exe, (uint32_t) length, buf);
if (exe->length == 0)
ffStrbufSetNS(exe, (uint32_t) length, buf);
if (exePath)
ffStrbufSet(exePath, exe);
{
// We don't use exec_path above as exePath because it's a relative path and can be different
// from the actual executable being run (for example, when the original file is moved)
ffStrbufSetNS(exePath, (uint32_t) length, buf);
}
}
}