summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-06-26 06:33:16 -0400
committerBrad King <brad.king@kitware.com>2020-06-29 07:50:47 -0400
commitf2c903fb9a02b129c6673385363f2a99f2f153ce (patch)
treed8c203b97395da6ef70d4e5d0bd3c84cb1a7d08a /Source
parente66fe75792a2fbe9f3ffe237c748008906ae7116 (diff)
downloadcmake-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.cxx3
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