From: Michihiro NAKAJIMA Date: Sat, 24 Mar 2012 12:49:14 +0000 (+0900) Subject: Change the default permissions of the regular files in CAB and 7-Zip archives to... X-Git-Tag: v3.0.4~2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f079aadc03aae8647db50536ca43e1ca75fc4775;p=thirdparty%2Flibarchive.git Change the default permissions of the regular files in CAB and 7-Zip archives to 0666 as Zip reader. --- diff --git a/libarchive/archive_read_support_format_7zip.c b/libarchive/archive_read_support_format_7zip.c index 89eb573a6..39a46ed57 100644 --- a/libarchive/archive_read_support_format_7zip.c +++ b/libarchive/archive_read_support_format_7zip.c @@ -2472,7 +2472,7 @@ read_Header(struct archive_read *a, struct _7z_header_info *h, if ((size_t)sindex >= si->ss.unpack_streams) return (-1); if (entries[i].mode == 0) - entries[i].mode = AE_IFREG | 0777; + entries[i].mode = AE_IFREG | 0666; if (si->ss.digestsDefined[sindex]) entries[i].flg |= CRC32_IS_SET; entries[i].ssIndex = sindex; @@ -2492,7 +2492,7 @@ read_Header(struct archive_read *a, struct _7z_header_info *h, if (dir) entries[i].mode = AE_IFDIR | 0777; else - entries[i].mode = AE_IFREG | 0777; + entries[i].mode = AE_IFREG | 0666; } else if (dir && (entries[i].mode & AE_IFMT) != AE_IFDIR) { entries[i].mode &= ~AE_IFMT; diff --git a/libarchive/archive_read_support_format_cab.c b/libarchive/archive_read_support_format_cab.c index 3f79afe16..aa0152a17 100644 --- a/libarchive/archive_read_support_format_cab.c +++ b/libarchive/archive_read_support_format_cab.c @@ -990,7 +990,7 @@ archive_read_format_cab_read_header(struct archive_read *a, if (file->attr & ATTR_RDONLY) archive_entry_set_mode(entry, AE_IFREG | 0555); else - archive_entry_set_mode(entry, AE_IFREG | 0777); + archive_entry_set_mode(entry, AE_IFREG | 0666); archive_entry_set_mtime(entry, file->mtime, 0); cab->entry_bytes_remaining = file->uncompressed_size; diff --git a/libarchive/test/test_read_format_7zip.c b/libarchive/test/test_read_format_7zip.c index 9bf49d0aa..043ef9f4e 100644 --- a/libarchive/test/test_read_format_7zip.c +++ b/libarchive/test/test_read_format_7zip.c @@ -46,7 +46,7 @@ test_copy() /* Verify regular file1. */ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); - assertEqualInt((AE_IFREG | 0777), archive_entry_mode(ae)); + assertEqualInt((AE_IFREG | 0666), archive_entry_mode(ae)); assertEqualString("file1", archive_entry_pathname(ae)); assertEqualInt(86401, archive_entry_mtime(ae)); assertEqualInt(60, archive_entry_size(ae)); @@ -510,7 +510,7 @@ test_bcj(const char *refname) /* Verify regular x86exe. */ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); - assertEqualInt((AE_IFREG | 0555), archive_entry_mode(ae)); + assertEqualInt((AE_IFREG | 0444), archive_entry_mode(ae) & ~0111); assertEqualString("x86exe", archive_entry_pathname(ae)); assertEqualInt(172802, archive_entry_mtime(ae)); assertEqualInt(27328, archive_entry_size(ae)); @@ -565,7 +565,7 @@ test_ppmd() /* Verify regular file1. */ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); - assertEqualInt((AE_IFREG | 0777), archive_entry_mode(ae)); + assertEqualInt((AE_IFREG | 0666), archive_entry_mode(ae)); assertEqualString("ppmd_test.txt", archive_entry_pathname(ae)); assertEqualInt(1322464589, archive_entry_mtime(ae)); assertEqualInt(102400, archive_entry_size(ae)); diff --git a/libarchive/test/test_read_format_cab.c b/libarchive/test/test_read_format_cab.c index 54dd633f2..004d6e8a9 100644 --- a/libarchive/test/test_read_format_cab.c +++ b/libarchive/test/test_read_format_cab.c @@ -199,7 +199,7 @@ verify(const char *refname, enum comp_type comp) /* Verify regular empty. */ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); - assertEqualInt((AE_IFREG | 0777), archive_entry_mode(ae)); + assertEqualInt((AE_IFREG | 0666), archive_entry_mode(ae)); assertEqualString("empty", archive_entry_pathname(ae)); assertEqualInt(0, archive_entry_uid(ae)); assertEqualInt(0, archive_entry_gid(ae)); @@ -211,7 +211,7 @@ verify(const char *refname, enum comp_type comp) * file to check if we properly handle multiple CFDATA. */ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); - assertEqualInt((AE_IFREG | 0777), archive_entry_mode(ae)); + assertEqualInt((AE_IFREG | 0666), archive_entry_mode(ae)); assertEqualString("zero", archive_entry_pathname(ae)); assertEqualInt(0, archive_entry_uid(ae)); assertEqualInt(0, archive_entry_gid(ae)); @@ -232,7 +232,7 @@ verify(const char *refname, enum comp_type comp) /* Verify regular file1. */ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); - assertEqualInt((AE_IFREG | 0777), archive_entry_mode(ae)); + assertEqualInt((AE_IFREG | 0666), archive_entry_mode(ae)); assertEqualString("dir1/file1", archive_entry_pathname(ae)); assertEqualInt(0, archive_entry_uid(ae)); assertEqualInt(0, archive_entry_gid(ae)); @@ -242,7 +242,7 @@ verify(const char *refname, enum comp_type comp) /* Verify regular file2. */ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); - assertEqualInt((AE_IFREG | 0777), archive_entry_mode(ae)); + assertEqualInt((AE_IFREG | 0666), archive_entry_mode(ae)); assertEqualString("dir2/file2", archive_entry_pathname(ae)); assertEqualInt(0, archive_entry_uid(ae)); assertEqualInt(0, archive_entry_gid(ae)); @@ -298,7 +298,7 @@ verify2(const char *refname, enum comp_type comp) /* Verify regular file2. */ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); - assertEqualInt((AE_IFREG | 0777), archive_entry_mode(ae)); + assertEqualInt((AE_IFREG | 0666), archive_entry_mode(ae)); assertEqualString("dir2/file2", archive_entry_pathname(ae)); assertEqualInt(0, archive_entry_uid(ae)); assertEqualInt(0, archive_entry_gid(ae));