From 26b53bb75e6bdf9aa7820a3343845dae145625cc Mon Sep 17 00:00:00 2001 From: Al Sutton Date: Thu, 20 Nov 2014 13:33:57 +0000 Subject: [PATCH] Return path including executable instead of without The previous implementation returned the path the executable was in instead of returning the path including the executable (i.e. it returned ...bin instead of ...bin/executable). This is not what the original methods did and caused the process forking of adb to fail. This patch corrects the implementation. Change-Id: Ib58497cab35706041f170c1bc97c31fd5d965f90 --- adb/get_my_path_darwin.c | 10 +++++----- fastboot/util_osx.c | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/adb/get_my_path_darwin.c b/adb/get_my_path_darwin.c index 9141b5799..65dd2263c 100644 --- a/adb/get_my_path_darwin.c +++ b/adb/get_my_path_darwin.c @@ -20,11 +20,11 @@ void get_my_path(char *s, size_t maxLen) { CFBundleRef mainBundle = CFBundleGetMainBundle(); - CFURLRef bundleURL = CFBundleCopyBundleURL(mainBundle); - CFStringRef bundlePathString = CFURLCopyFileSystemPath(bundleURL, kCFURLPOSIXPathStyle); - CFRelease(bundleURL); + CFURLRef executableURL = CFBundleCopyExecutableURL(mainBundle); + CFStringRef executablePathString = CFURLCopyFileSystemPath(executableURL, kCFURLPOSIXPathStyle); + CFRelease(executableURL); - CFStringGetCString(bundlePathString, s, maxLen, kCFStringEncodingASCII); - CFRelease(bundlePathString); + CFStringGetCString(executablePathString, s, maxLen, kCFStringEncodingASCII); + CFRelease(executablePathString); } diff --git a/fastboot/util_osx.c b/fastboot/util_osx.c index e80a8f356..a8f5c3158 100644 --- a/fastboot/util_osx.c +++ b/fastboot/util_osx.c @@ -32,12 +32,12 @@ void get_my_path(char s[PATH_MAX]) { CFBundleRef mainBundle = CFBundleGetMainBundle(); - CFURLRef bundleURL = CFBundleCopyBundleURL(mainBundle); - CFStringRef bundlePathString = CFURLCopyFileSystemPath(bundleURL, kCFURLPOSIXPathStyle); - CFRelease(bundleURL); + CFURLRef executableURL = CFBundleCopyExecutableURL(mainBundle); + CFStringRef executablePathString = CFURLCopyFileSystemPath(executableURL, kCFURLPOSIXPathStyle); + CFRelease(executableURL); - CFStringGetCString(bundlePathString, s, PATH_MAX - 1, kCFStringEncodingASCII); - CFRelease(bundlePathString); + CFStringGetCString(executablePathString, s, PATH_MAX-1, kCFStringEncodingASCII); + CFRelease(executablePathString); char *x; x = strrchr(s, '/');