From: Graham Percival Date: Sun, 6 Apr 2025 21:13:17 +0000 (-0700) Subject: Use __LA_MODE_T to avoid implicit int conversions (#2478) X-Git-Tag: v3.8.0~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ea9fd828dc65ddeaac17cff8e0a34b619c265a50;p=thirdparty%2Flibarchive.git Use __LA_MODE_T to avoid implicit int conversions (#2478) --- diff --git a/libarchive/archive_read_support_format_7zip.c b/libarchive/archive_read_support_format_7zip.c index a4f08e097..0af3d8932 100644 --- a/libarchive/archive_read_support_format_7zip.c +++ b/libarchive/archive_read_support_format_7zip.c @@ -233,7 +233,7 @@ struct _7zip_entry { uint32_t mtime_ns; uint32_t atime_ns; uint32_t ctime_ns; - uint32_t mode; + __LA_MODE_T mode; uint32_t attr; }; diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c index 7d3655a95..1635228d5 100644 --- a/libarchive/archive_read_support_format_iso9660.c +++ b/libarchive/archive_read_support_format_iso9660.c @@ -2273,7 +2273,7 @@ parse_rockridge(struct archive_read *a, struct file_info *file, if (version == 1) { if (data_length >= 8) file->mode - = toi(data, 4); + = (__LA_MODE_T)toi(data, 4); if (data_length >= 16) file->nlinks = toi(data + 8, 4); diff --git a/libarchive/archive_read_support_format_rar.c b/libarchive/archive_read_support_format_rar.c index b4e61f6d9..0185201d0 100644 --- a/libarchive/archive_read_support_format_rar.c +++ b/libarchive/archive_read_support_format_rar.c @@ -1753,7 +1753,7 @@ read_header(struct archive_read *a, struct archive_entry *entry, case OS_MSDOS: case OS_OS2: case OS_WIN32: - rar->mode = archive_le32dec(file_header.file_attr); + rar->mode = (__LA_MODE_T)archive_le32dec(file_header.file_attr); if (rar->mode & FILE_ATTRIBUTE_DIRECTORY) rar->mode = AE_IFDIR | S_IXUSR | S_IXGRP | S_IXOTH; else @@ -1764,7 +1764,7 @@ read_header(struct archive_read *a, struct archive_entry *entry, case OS_UNIX: case OS_MAC_OS: case OS_BEOS: - rar->mode = archive_le32dec(file_header.file_attr); + rar->mode = (__LA_MODE_T)archive_le32dec(file_header.file_attr); break; default: diff --git a/libarchive/archive_write_set_format_pax.c b/libarchive/archive_write_set_format_pax.c index 6e35f705e..0db453446 100644 --- a/libarchive/archive_write_set_format_pax.c +++ b/libarchive/archive_write_set_format_pax.c @@ -1414,7 +1414,7 @@ archive_write_pax_header(struct archive_write *a, struct archive_entry *pax_attr_entry; time_t s; int64_t uid, gid; - int mode; + __LA_MODE_T mode; pax_attr_entry = archive_entry_new2(&a->archive); p = entry_name.s; diff --git a/libarchive/test/test_write_format_zip64_stream.c b/libarchive/test/test_write_format_zip64_stream.c index 1d8f1ff7f..423e30d9e 100644 --- a/libarchive/test/test_write_format_zip64_stream.c +++ b/libarchive/test/test_write_format_zip64_stream.c @@ -38,7 +38,7 @@ DEFINE_TEST(test_write_format_zip64_stream) size_t used, buffsize = 1000000; unsigned long crc; unsigned long compressed_size = 0; - int file_perm = 00644; + __LA_MODE_T file_perm = 00644; int zip_version = 45; int zip_compression = 8; short file_uid = 10, file_gid = 20; diff --git a/libarchive/test/test_write_format_zip_file.c b/libarchive/test/test_write_format_zip_file.c index e5314b078..c4d2b544b 100644 --- a/libarchive/test/test_write_format_zip_file.c +++ b/libarchive/test/test_write_format_zip_file.c @@ -46,7 +46,7 @@ DEFINE_TEST(test_write_format_zip_file) #endif size_t used, buffsize = 1000000; unsigned long crc; - int file_perm = 00644; + __LA_MODE_T file_perm = 00644; int zip_version = 20; int zip_compression = 8; short file_uid = 10, file_gid = 20; diff --git a/libarchive/test/test_write_format_zip_file_zip64.c b/libarchive/test/test_write_format_zip_file_zip64.c index 28b22a4fa..e969c9ec5 100644 --- a/libarchive/test/test_write_format_zip_file_zip64.c +++ b/libarchive/test/test_write_format_zip_file_zip64.c @@ -46,7 +46,7 @@ DEFINE_TEST(test_write_format_zip_file_zip64) #endif size_t used, buffsize = 1000000; unsigned long crc; - int file_perm = 00644; + __LA_MODE_T file_perm = 00644; int zip_version = 45; int zip_compression = 8; short file_uid = 10, file_gid = 20; diff --git a/libarchive/test/test_write_format_zip_stream.c b/libarchive/test/test_write_format_zip_stream.c index e67d2b8da..511044243 100644 --- a/libarchive/test/test_write_format_zip_stream.c +++ b/libarchive/test/test_write_format_zip_stream.c @@ -38,7 +38,7 @@ DEFINE_TEST(test_write_format_zip_stream) size_t used, buffsize = 1000000; unsigned long crc; unsigned long compressed_size = 0; - int file_perm = 00644; + __LA_MODE_T file_perm = 00644; #ifdef HAVE_ZLIB_H int zip_version = 20; #else