]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Merge pull request #2791 from KlaraSystems/des/383-fixes
authorTim Kientzle <kientzle@acm.org>
Fri, 21 Nov 2025 06:24:38 +0000 (22:24 -0800)
committerMartin Matuska <martin@matuska.de>
Fri, 28 Nov 2025 10:47:33 +0000 (11:47 +0100)
Fix issues encountered while importing 3.8.3 downstream

(cherry picked from commit 8ef2084104887af3401d91b36eab2496767c81a8)

libarchive/archive_cryptor_private.h
libarchive/archive_read_disk_entry_from_file.c
libarchive/archive_version_details.c
libarchive/archive_write.c
libarchive/archive_write_set_format_xar.c
libarchive/test/test_archive_read_multiple_data_objects.c
libarchive/test/test_write_disk_perms.c
libarchive/test/test_write_filter_bzip2.c

index 1dbc5c17a01aca4cb114907aff5270d2e12a77e2..272f2f84b9c912d8a740b690435ea5b77652b983 100644 (file)
@@ -56,10 +56,10 @@ int __libarchive_cryptor_build_hack(void);
 typedef struct {
        CCCryptorRef    ctx;
        uint8_t         key[AES_MAX_KEY_SIZE];
-       unsigned        key_len;
+       size_t          key_len;
        uint8_t         nonce[AES_BLOCK_SIZE];
        uint8_t         encr_buf[AES_BLOCK_SIZE];
-       unsigned        encr_pos;
+       size_t          encr_pos;
 } archive_crypto_ctx;
 
 #elif defined(_WIN32) && !defined(__CYGWIN__) && defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA
index 121af19872e9424f6cb2ec5d1af4c370130f52ff..6e6bae6a4e0676ea430f7b28347ab0a5b692e21c 100644 (file)
@@ -254,7 +254,7 @@ archive_read_disk_entry_from_file(struct archive *_a,
        if (S_ISLNK(st->st_mode)) {
                size_t linkbuffer_len = st->st_size;
                char *linkbuffer;
-               int lnklen;
+               ssize_t lnklen;
 
                linkbuffer = malloc(linkbuffer_len + 1);
                if (linkbuffer == NULL) {
@@ -892,7 +892,7 @@ setup_sparse_fiemap(struct archive_read_disk *a,
        for (iters = 0; ; ++iters) {
                int i, r;
 
-               r = ioctl(*fd, FS_IOC_FIEMAP, fm); 
+               r = ioctl(*fd, FS_IOC_FIEMAP, fm);
                if (r < 0) {
                        /* When something error happens, it is better we
                         * should return ARCHIVE_OK because an earlier
@@ -1079,4 +1079,3 @@ setup_sparse(struct archive_read_disk *a,
 #endif
 
 #endif /* !defined(_WIN32) || defined(__CYGWIN__) */
-
index 0cf92db7319441c4e49497af30fa7c6702f02271..9063faa7942677541168054c2901ccb2c17ad22e 100644 (file)
@@ -333,7 +333,7 @@ archive_libbsdxml_version(void)
 const char *
 archive_libxml2_version(void)
 {
-#if HAVE_LIBXML_XMLREADER_H && HAVE_LIBXML2
+#if HAVE_LIBXML_XMLVERSION_H && HAVE_LIBXML2
        return LIBXML_DOTTED_VERSION;
 #else
        return NULL;
index 9b9cb196f0f9c0d9bde2cdeec17d675760cafd02..e1ce5d57288db0a5a23965f750940b87a0e277c7 100644 (file)
@@ -821,7 +821,7 @@ _archive_write_data(struct archive *_a, const void *buff, size_t s)
 {
        struct archive_write *a = (struct archive_write *)_a;
        const size_t max_write = INT_MAX;
-       int ret;
+       ssize_t ret;
 
        archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
            ARCHIVE_STATE_DATA, "archive_write_data");
index 9921f1032be50155e86182e5d952ca6f2c9a5e6f..ec3219057e4ec957494ebd735f1086b2b9ac4a88 100644 (file)
@@ -1000,13 +1000,13 @@ xmlwrite_heap(struct archive_write *a, struct xml_writer *writer,
        const char *encname;
        int r;
 
-       r = xmlwrite_fstring(a, writer, "length", "%ju", heap->length);
+       r = xmlwrite_fstring(a, writer, "length", "%ju", (uintmax_t)heap->length);
        if (r < 0)
                return (ARCHIVE_FATAL);
-       r = xmlwrite_fstring(a, writer, "offset", "%ju", heap->temp_offset);
+       r = xmlwrite_fstring(a, writer, "offset", "%ju", (uintmax_t)heap->temp_offset);
        if (r < 0)
                return (ARCHIVE_FATAL);
-       r = xmlwrite_fstring(a, writer, "size", "%ju", heap->size);
+       r = xmlwrite_fstring(a, writer, "size", "%ju", (uintmax_t)heap->size);
        if (r < 0)
                return (ARCHIVE_FATAL);
        switch (heap->compression) {
@@ -1356,7 +1356,7 @@ make_file_entry(struct archive_write *a, struct xml_writer *writer,
         * Make a inode entry, "<inode>".
         */
        r = xmlwrite_fstring(a, writer, "inode",
-           "%jd", archive_entry_ino64(file->entry));
+           "%jd", (intmax_t)archive_entry_ino64(file->entry));
        if (r < 0)
                return (ARCHIVE_FATAL);
        if (archive_entry_dev(file->entry) != 0) {
@@ -1378,7 +1378,7 @@ make_file_entry(struct archive_write *a, struct xml_writer *writer,
         * Make a user entry, "<uid>" and "<user>.
         */
        r = xmlwrite_fstring(a, writer, "uid",
-           "%d", archive_entry_uid(file->entry));
+           "%jd", (intmax_t)archive_entry_uid(file->entry));
        if (r < 0)
                return (ARCHIVE_FATAL);
        r = archive_entry_uname_l(file->entry, &p, &len, xar->sconv);
@@ -1404,7 +1404,7 @@ make_file_entry(struct archive_write *a, struct xml_writer *writer,
         * Make a group entry, "<gid>" and "<group>.
         */
        r = xmlwrite_fstring(a, writer, "gid",
-           "%d", archive_entry_gid(file->entry));
+           "%jd", (intmax_t)archive_entry_gid(file->entry));
        if (r < 0)
                return (ARCHIVE_FATAL);
        r = archive_entry_gname_l(file->entry, &p, &len, xar->sconv);
index f9f75d96fa6be26e2d81b7abc902a3c0a2278d78..791c7ad01121f38c4602f6ba5d9eb76375448ec2 100644 (file)
@@ -202,7 +202,7 @@ static int64_t
 file_skip(struct archive *a, void *data, int64_t request)
 {
   struct mydata *mydata = (struct mydata *)data;
-  int64_t result = lseek(mydata->fd, SEEK_CUR, request);
+  int64_t result = lseek(mydata->fd, request, SEEK_CUR);
   if (result >= 0)
     return result;
   archive_set_error(a, errno, "Error seeking in '%s'", mydata->filename);
index 77a15d1a3e420de5e08764a6a18276e063bdd168..72b55179d86e110f359278b2251369e5c594a98e 100644 (file)
@@ -94,21 +94,21 @@ searchgid(void)
        close(fd);
 }
 
-static int
+static long
 altgid(void)
 {
        searchgid();
        return (_alt_gid);
 }
 
-static int
+static long
 invalidgid(void)
 {
        searchgid();
        return (_invalid_gid);
 }
 
-static int
+static long
 defaultgid(void)
 {
        searchgid();
index 7b2e4f857a75cd20530964b18cded72adddcc1ed..d7ed95e2c7ff85f64e3919e596667e7f0174ab4e 100644 (file)
@@ -40,7 +40,8 @@ DEFINE_TEST(test_write_filter_bzip2)
        size_t buffsize, datasize;
        char path[16];
        size_t used1, used2;
-       int i, r, use_prog;
+       ssize_t r;
+       int i, use_prog;
 
        buffsize = 2000000;
        assert(NULL != (buff = malloc(buffsize)));