]> git.ipfire.org Git - pakfire.git/commitdiff
packager: Set approprivate file permissions in archive
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 3 Jun 2021 18:08:27 +0000 (18:08 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 3 Jun 2021 18:08:27 +0000 (18:08 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/packager.c

index 707c10812f810f7567873698f65585b165bb3b95..b17fc90921ef4b7e7045fab2fd22bf437fa2b18e 100644 (file)
@@ -356,7 +356,7 @@ static int pakfire_packager_copy_data(struct pakfire_packager* packager,
 }
 
 static struct archive_entry* pakfire_packager_create_file(
-               struct pakfire_packager* packager, const char* filename, size_t size) {
+               struct pakfire_packager* packager, const char* filename, size_t size, mode_t mode) {
        // Create a new file entry
        struct archive_entry* entry = archive_entry_new();
        if (!entry)
@@ -367,7 +367,7 @@ static struct archive_entry* pakfire_packager_create_file(
 
        // This is a regular file
     archive_entry_set_filetype(entry, AE_IFREG);
-    archive_entry_set_perm(entry, 0644);
+    archive_entry_set_perm(entry, mode);
 
        // Set size
        archive_entry_set_size(entry, size);
@@ -434,7 +434,7 @@ static int pakfire_packager_write_format(struct pakfire_packager* packager,
        const char buffer[] = TO_STRING(PACKAGE_FORMAT) "\n";
 
        int r = pakfire_packager_write_file_from_buffer(packager, a, NULL,
-               PAKFIRE_ARCHIVE_FN_FORMAT, buffer);
+               PAKFIRE_ARCHIVE_FN_FORMAT, 0444, buffer);
        if (r)
                return r;
 
@@ -655,7 +655,7 @@ static int pakfire_packager_write_metadata(struct pakfire_packager* packager,
 
        // Write buffer
        int r = pakfire_packager_write_file_from_buffer(packager, a, mtree,
-               PAKFIRE_ARCHIVE_FN_METADATA, buffer);
+               PAKFIRE_ARCHIVE_FN_METADATA, 0444, buffer);
 
        free(buffer);
 
@@ -687,7 +687,7 @@ static int pakfire_packager_write_archive(struct pakfire_packager* packager,
 
        // Create a new file
        struct archive_entry* entry = pakfire_packager_create_file(packager,
-                       filename, st.st_size);
+                       filename, st.st_size, 0444);
        if (!entry)
                return 1;
 
@@ -749,7 +749,7 @@ static int pakfire_packager_write_scriptlet(struct pakfire_packager* packager,
        const char* data = pakfire_scriptlet_get_data(scriptlet, &size);
 
        // Write file
-       return pakfire_packager_write_file_from_buffer(packager, a, mtree, filename, data);
+       return pakfire_packager_write_file_from_buffer(packager, a, mtree, filename, 0544, data);
 }
 
 /*