From 768cf9183174e11c36c431d80e95ced2f5f9d2ad Mon Sep 17 00:00:00 2001 From: Eric NOULARD Date: Tue, 10 Jan 2012 23:19:41 +0100 Subject: [PATCH] Do not add the content of a file if it's a symlink. This wasn't necessary for TAR-like (TGZ, TBZ2, etc...) archive because for those the size was 0. Either there is an error in upstream libarchive concerning the size or we should not rely on size of the entry for adding content. --- Source/cmArchiveWrite.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Source/cmArchiveWrite.cxx b/Source/cmArchiveWrite.cxx index eab8a592a..dc6b749b2 100644 --- a/Source/cmArchiveWrite.cxx +++ b/Source/cmArchiveWrite.cxx @@ -247,10 +247,14 @@ bool cmArchiveWrite::AddFile(const char* file, return false; } - // Content. - if(size_t size = static_cast(archive_entry_size(e))) + // do not copy content of symlink + if (!archive_entry_symlink(e)) { - return this->AddData(file, size); + // Content. + if(size_t size = static_cast(archive_entry_size(e))) + { + return this->AddData(file, size); + } } return true; }