diff options
author | Brad King <brad.king@kitware.com> | 2020-06-26 06:33:16 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-06-29 07:50:47 -0400 |
commit | f2c903fb9a02b129c6673385363f2a99f2f153ce (patch) | |
tree | d8c203b97395da6ef70d4e5d0bd3c84cb1a7d08a /Source | |
parent | e66fe75792a2fbe9f3ffe237c748008906ae7116 (diff) | |
download | cmake-f2c903fb9a02b129c6673385363f2a99f2f153ce.tar.gz |
find_library: Check that library files are readable
Refactoring in commit 6b85166920 (ENH: Refactor find_library search
logic, 2008-09-22, v2.8.0~1665) dropped a call to `FileExists` on the
path under the assumption that the presence of a file in a directory
listing means it exists. However, dropping that also dropped a check
that verifies the file is readable. Restore the `FileExists` call to
ensure that we only find readable libraries.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmFindLibraryCommand.cxx | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Source/cmFindLibraryCommand.cxx b/Source/cmFindLibraryCommand.cxx index 31f1201d76..3242b6d978 100644 --- a/Source/cmFindLibraryCommand.cxx +++ b/Source/cmFindLibraryCommand.cxx @@ -433,7 +433,8 @@ bool cmFindLibraryHelper::CheckDirectoryForName(std::string const& path, #endif if (name.Regex.find(testName)) { this->TestPath = cmStrCat(path, origName); - if (!cmSystemTools::FileIsDirectory(this->TestPath)) { + // Make sure the path is readable and is not a directory. + if (cmSystemTools::FileExists(this->TestPath, true)) { this->DebugLibraryFound(name.Raw, dir); // This is a matching file. Check if it is better than the |