]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Issue 253: Default to 0666 permissions on files, like Info-Zip does.
authorTim Kientzle <kientzle@acm.org>
Fri, 23 Mar 2012 06:32:23 +0000 (23:32 -0700)
committerTim Kientzle <kientzle@acm.org>
Fri, 23 Mar 2012 06:32:23 +0000 (23:32 -0700)
libarchive/archive_read_support_format_zip.c
libarchive/test/test_compat_zip.c
libarchive/test/test_write_format_zip.c

index 8b5e86a12539c8e29b59b8052de3e70d91926ad0..2055313a46b7f88f7a60b2ac23d4acce6fe7f736 100644 (file)
@@ -727,14 +727,14 @@ zip_read_local_file_header(struct archive_read *a, struct archive_entry *entry,
                        if (len > 0 && wp[len - 1] == L'/')
                                zip_entry->mode = AE_IFDIR | 0777;
                        else
-                               zip_entry->mode = AE_IFREG | 0777;
+                               zip_entry->mode = AE_IFREG | 0666;
                } else {
                        cp = archive_entry_pathname(entry);
                        len = (cp != NULL)?strlen(cp):0;
                        if (len > 0 && cp[len - 1] == '/')
                                zip_entry->mode = AE_IFDIR | 0777;
                        else
-                               zip_entry->mode = AE_IFREG | 0777;
+                               zip_entry->mode = AE_IFREG | 0666;
                }
        }
 
index ece62251a87245ea809299ce4f6c1986f72048ff..538c0b8f26852aeb96313e6c61692b585df91450 100644 (file)
@@ -238,19 +238,19 @@ test_compat_zip_5(void)
        assertEqualString("Metadata/Job_PT.xml", archive_entry_pathname(ae));
        assertEqualInt(3559, archive_entry_size(ae));
        assertEqualInt(AE_IFREG, archive_entry_filetype(ae));
-       assertEqualInt(0777, archive_entry_perm(ae));
+       assertEqualInt(0666, archive_entry_perm(ae));
 
        assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
        assertEqualString("Metadata/MXDC_Empty_PT.xml", archive_entry_pathname(ae));
        assertEqualInt(456, archive_entry_size(ae));
        assertEqualInt(AE_IFREG, archive_entry_filetype(ae));
-       assertEqualInt(0777, archive_entry_perm(ae));
+       assertEqualInt(0666, archive_entry_perm(ae));
 
        assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
        assertEqualString("Documents/1/Metadata/Page1_Thumbnail.JPG", archive_entry_pathname(ae));
        assertEqualInt(1495, archive_entry_size(ae));
        assertEqualInt(AE_IFREG, archive_entry_filetype(ae));
-       assertEqualInt(0777, archive_entry_perm(ae));
+       assertEqualInt(0666, archive_entry_perm(ae));
        /* TODO: Read some of the file data and verify it.
           The code to read uncompressed Zip entries with "file at end" semantics
           is tricky and should be verified more carefully. */
@@ -298,21 +298,21 @@ test_compat_zip_5(void)
        assertEqualInt(0, archive_entry_size(ae));
        assert(!archive_entry_size_is_set(ae));
        assertEqualInt(AE_IFREG, archive_entry_filetype(ae));
-       assertEqualInt(0777, archive_entry_perm(ae));
+       assertEqualInt(0666, archive_entry_perm(ae));
 
        assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
        assertEqualString("Metadata/MXDC_Empty_PT.xml", archive_entry_pathname(ae));
        assertEqualInt(0, archive_entry_size(ae));
        assert(!archive_entry_size_is_set(ae));
        assertEqualInt(AE_IFREG, archive_entry_filetype(ae));
-       assertEqualInt(0777, archive_entry_perm(ae));
+       assertEqualInt(0666, archive_entry_perm(ae));
 
        assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
        assertEqualString("Documents/1/Metadata/Page1_Thumbnail.JPG", archive_entry_pathname(ae));
        assertEqualInt(0, archive_entry_size(ae));
        assert(!archive_entry_size_is_set(ae));
        assertEqualInt(AE_IFREG, archive_entry_filetype(ae));
-       assertEqualInt(0777, archive_entry_perm(ae));
+       assertEqualInt(0666, archive_entry_perm(ae));
 
        assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
        assertEqualString("Documents/1/Pages/_rels/1.fpage.rels", archive_entry_pathname(ae));
index d62bce8da7f1709da8306cbd3387be68cad21d63..f7e5ebfffbb52d2231e528735e15ddee7efdaf84 100644 (file)
@@ -91,7 +91,7 @@ verify_contents(struct archive *a, int expect_details)
                assertEqualInt(0, archive_entry_size(ae));
                assertEqualString("file1", archive_entry_symlink(ae));
        } else {
-               assertEqualInt(AE_IFREG | 0777, archive_entry_mode(ae));
+               assertEqualInt(AE_IFREG | 0666, archive_entry_mode(ae));
                assertEqualInt(0, archive_entry_size(ae));
        }