From 5d92d406a1a84dae8cef44dfde6e03bb4c1c8a7f Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Thu, 18 Aug 2022 12:17:06 -0500 Subject: [PATCH] Darwin: Resolve soft-links in epicsGetExecName() --- modules/libcom/src/osi/os/Darwin/osdgetexec.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/libcom/src/osi/os/Darwin/osdgetexec.c b/modules/libcom/src/osi/os/Darwin/osdgetexec.c index 2f2d6e4d5..eb449e660 100644 --- a/modules/libcom/src/osi/os/Darwin/osdgetexec.c +++ b/modules/libcom/src/osi/os/Darwin/osdgetexec.c @@ -21,8 +21,7 @@ char *epicsGetExecName(void) if(!temp) { /* we treat alloc failure as terminal */ free(ret); - ret = NULL; - break; + return NULL; } ret = temp; @@ -35,9 +34,11 @@ char *epicsGetExecName(void) /* max has been updated with required size */ } - /* TODO: _NSGetExecutablePath() doesn't follow symlinks */ + /* Resolve soft-links */ + char *res = realpath(ret, NULL); + free(ret); - return ret; + return res; } char *epicsGetExecDir(void)