diff options
author | Brad King <brad.king@kitware.com> | 2011-04-07 08:27:56 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2011-04-07 08:27:56 -0400 |
commit | e8558efa01151a94d0dc16f7327b77560b543ab9 (patch) | |
tree | 84e28154ce25f80496dbd89403b84138c6469983 /Source/cmArchiveWrite.cxx | |
parent | c2f8a137152d9dc4cc08b156284f916561e1455c (diff) | |
download | cmake-e8558efa01151a94d0dc16f7327b77560b543ab9.tar.gz |
cmArchiveWrite: Clear xattr and acl from entries (#11958)
When reading archive entries from disk strip any xattr and acl entry
headers that may have been loaded from the filesystem (e.g. selinux).
These fields are only useful for backup tools and not for packaging and
distribution of software. Furthermore, the GNU tar 1.15.1 on at least
one Linux distribution treats unknown entry headers as an error rather
than a warning. Therefore avoiding such fields is necessary for archive
portability.
Suggested-by: Tim Kientzle <tim@kientzle.com>
Diffstat (limited to 'Source/cmArchiveWrite.cxx')
-rw-r--r-- | Source/cmArchiveWrite.cxx | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Source/cmArchiveWrite.cxx b/Source/cmArchiveWrite.cxx index d9e4742a22..25dc8ba487 100644 --- a/Source/cmArchiveWrite.cxx +++ b/Source/cmArchiveWrite.cxx @@ -236,6 +236,9 @@ bool cmArchiveWrite::AddFile(const char* file, this->Error += archive_error_string(this->Disk); return false; } + // Clear acl and xattr fields not useful for distribution. + archive_entry_acl_clear(e); + archive_entry_xattr_clear(e); if(archive_write_header(this->Archive, e) != ARCHIVE_OK) { this->Error = "archive_write_header: "; |