From 73e08e51ba3eb156240c4b240829d85548d25f5a Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Fri, 8 Jun 2018 19:49:13 -0700 Subject: Properly get the full executable and pathname on FreeBSD --- Alc/helpers.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'Alc/helpers.c') diff --git a/Alc/helpers.c b/Alc/helpers.c index e54f3fb2..53d85a86 100644 --- a/Alc/helpers.c +++ b/Alc/helpers.c @@ -676,13 +676,13 @@ void GetProcBinary(al_string *path, al_string *fname) size_t pathlen; #ifdef __FreeBSD__ - int mib[4] = { CTL_KERN, KERN_PROC_ARGS, getpid() }; - if(sysctl(mib, 3, NULL, &pathlen, NULL, 0) == -1) - WARN("Failed to sysctl kern.procargs.%d: %s\n", mib[2], strerror(errno)); + int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }; + if(sysctl(mib, 4, NULL, &pathlen, NULL, 0) == -1) + WARN("Failed to sysctl kern.proc.pathname: %s\n", strerror(errno)); else { pathname = malloc(pathlen + 1); - sysctl(mib, 3, (void*)pathname, &pathlen, NULL, 0); + sysctl(mib, 4, (void*)pathname, &pathlen, NULL, 0); pathname[pathlen] = 0; } #endif -- cgit v1.2.3