diff --git a/src/unix/darwin.c b/src/unix/darwin.c index 6b3705f6..e6deb301 100644 --- a/src/unix/darwin.c +++ b/src/unix/darwin.c @@ -73,6 +73,7 @@ uint64_t uv_hrtime() { int uv_exepath(char* buffer, size_t* size) { uint32_t usize; int result; + char* path; char* fullpath; if (!buffer || !size) { @@ -83,9 +84,11 @@ int uv_exepath(char* buffer, size_t* size) { result = _NSGetExecutablePath(buffer, &usize); if (result) return result; - fullpath = realpath(buffer, NULL); + path = (char*)malloc(2 * PATH_MAX); + fullpath = realpath(buffer, path); if (fullpath == NULL) { + free(path); return -1; }