From bcc5cd44ed083dbcc71692146e9d2aa3d5ba6e59 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 20 Apr 2020 07:43:06 -0400 Subject: CPack: Do not recurse through directory symlinks Extend the fix from commit 7b8dcdd173 (CPack: Do not recurse through directory symlinks (#12284), 2011-08-27, v2.8.6~55^2) to more places in CPack. Issue: #12284 --- Source/CPack/cmCPackDebGenerator.cxx | 3 +++ Source/CPack/cmCPackGenerator.cxx | 2 ++ 2 files changed, 5 insertions(+) diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx index 5b7d8fb..d92acde 100644 --- a/Source/CPack/cmCPackDebGenerator.cxx +++ b/Source/CPack/cmCPackDebGenerator.cxx @@ -484,6 +484,7 @@ int cmCPackDebGenerator::PackageOnePack(std::string const& initialTopLevel, findExpr += "/*"; gl.RecurseOn(); gl.SetRecurseListDirs(true); + gl.SetRecurseThroughSymlinks(false); if (!gl.FindFiles(findExpr)) { cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find any files in the installed directory" @@ -508,6 +509,7 @@ int cmCPackDebGenerator::PackageOnePack(std::string const& initialTopLevel, findExpr += "/*"; gl.RecurseOn(); gl.SetRecurseListDirs(true); + gl.SetRecurseThroughSymlinks(false); if (!gl.FindFiles(findExpr)) { cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find any files in the installed directory" @@ -627,6 +629,7 @@ int cmCPackDebGenerator::PackageComponentsAllInOne( findExpr += "/*"; gl.RecurseOn(); gl.SetRecurseListDirs(true); + gl.SetRecurseThroughSymlinks(false); if (!gl.FindFiles(findExpr)) { cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find any files in the installed directory" diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index 712eb77..e053144 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -354,6 +354,7 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories( "- Install directory: " << top << std::endl); gl.RecurseOn(); gl.SetRecurseListDirs(true); + gl.SetRecurseThroughSymlinks(false); if (!gl.FindFiles(findExpr)) { cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find any files in the installed directory" @@ -862,6 +863,7 @@ int cmCPackGenerator::InstallCMakeProject( findExpr += "/*"; glB.RecurseOn(); glB.SetRecurseListDirs(true); + glB.SetRecurseThroughSymlinks(false); glB.FindFiles(findExpr); filesBefore = glB.GetFiles(); std::sort(filesBefore.begin(), filesBefore.end()); -- cgit v0.12