diff options
author | Bjoern Ricks <bjoern.ricks@intevation.de> | 2012-02-25 17:20:36 (GMT) |
---|---|---|
committer | Bjoern Ricks <bjoern.ricks@intevation.de> | 2012-02-25 17:20:36 (GMT) |
commit | 0d2f5c8d6a3384816310aec2478cf9e3877e8569 (patch) | |
tree | e4b5b5f9257c1d6cb88f363390af3fd132bbed09 /Source/cmFindProgramCommand.cxx | |
parent | f3fe73da548a90e6682fd6a650d923151950003d (diff) | |
download | CMake-0d2f5c8d6a3384816310aec2478cf9e3877e8569.zip CMake-0d2f5c8d6a3384816310aec2478cf9e3877e8569.tar.gz CMake-0d2f5c8d6a3384816310aec2478cf9e3877e8569.tar.bz2 |
Fix crash if app bundle executeable couldn't be found
Fix a crash on Mac OS X if a programm can't be found as an
application bundle. CFRelease MUST NOT be called on a
NULL value.
See https://developer.apple.com/library/mac/documentation/CoreFOundation/Reference/CFTypeRef/Reference/reference.html#//apple_ref/doc/c_ref/CFRelease
Diffstat (limited to 'Source/cmFindProgramCommand.cxx')
-rw-r--r-- | Source/cmFindProgramCommand.cxx | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Source/cmFindProgramCommand.cxx b/Source/cmFindProgramCommand.cxx index 7c56ad7..00f5419 100644 --- a/Source/cmFindProgramCommand.cxx +++ b/Source/cmFindProgramCommand.cxx @@ -175,6 +175,8 @@ std::string cmFindProgramCommand::GetBundleExecutable(std::string bundlePath) // And finally to a c++ string executable = bundlePath + "/Contents/MacOS/" + std::string(buffer); + // Only release CFURLRef if it's not null + CFRelease( executableURL ); } // Any CF objects returned from functions with "create" or @@ -182,7 +184,6 @@ std::string cmFindProgramCommand::GetBundleExecutable(std::string bundlePath) CFRelease( bundlePathCFS ); CFRelease( bundleURL ); CFRelease( appBundle ); - CFRelease( executableURL ); #endif return executable; |