git: bd66c1b43e33 - main - libarchive: merge from vendor branch
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 20 Oct 2024 09:30:52 UTC
The branch main has been updated by mm:
URL: https://cgit.FreeBSD.org/src/commit/?id=bd66c1b43e33540205dbc1187c2f2a15c58b57ba
commit bd66c1b43e33540205dbc1187c2f2a15c58b57ba
Merge: 5ca8c28cd8c7 eff4ff4791c8
Author: Martin Matuska <mm@FreeBSD.org>
AuthorDate: 2024-10-20 08:22:09 +0000
Commit: Martin Matuska <mm@FreeBSD.org>
CommitDate: 2024-10-20 08:24:02 +0000
libarchive: merge from vendor branch
Libarchive 3.7.7
Security fixes:
#2158 rpm: calculate huge header sizes correctly
#2160 util: fix out of boundary access in mktemp functions
#2168 uu: stop processing if lines are too long
#2174 lzop: prevent integer overflow
#2172 rar4: protect copy_from_lzss_window_to_unp() (CVE-2024-20696)
#2175 unzip: unify EOF handling
#2179 rar4: fix out of boundary access with large files
#2203 rar4: fix OOB access with unicode filenames
#2210 rar4: add boundary checks to rgb filter
#2248 rar4: fix OOB in delta filter
#2249 rar4: fix OOB in audio filter
#2256 fix multiple vulnerabilities identified by SAST
#2258 cpio: ignore out-of-range gid/uid/size/ino and harden AFIO parsing
#2265 rar5: clear 'data ready' cache on window buffer reallocs
#2269 rar4: fix CVE-2024-26256 (CVE-2024-26256)
#2330 iso: be more cautious about parsing ISO-9660 timestamps
#2343 tar: clean up linkpath between entries
#2364 tar: don't crash on truncated tar archives
#2366 gzip: prevent a hang when processing a malformed gzip inside a gzip
#2377 tar: fix two leaks in tar header parsing
Important bugfixes:
#2096 rar5: report encrypted entries
#2150 xar: fix another infinite loop and expat error handling
#2173 shar: check strdup return value
#2161 lha: fix integer truncation on 32-bit systems
#2338 tar: fix memory leaks when processing symlinks or parsing pax headers
#2245 7zip: fix issue when skipping first file in 7zip archive that
is a multiple of 65536 bytes
#2252 7-zip: read/write symlink paths as UTF-8
#2259 rar5: don't try to read rediculously long names
#2290 ar: fix archive entries having no type
#2360 tar: fix truncation of entry pathnames in specific archives
CVE: CVE-2024-20696, CVE-2024-26256
PR: 282047 (exp-run)
MFC after: 1 week
contrib/libarchive/NEWS | 6 +
contrib/libarchive/cat/bsdcat.1 | 26 +-
contrib/libarchive/cat/bsdcat.c | 22 +-
contrib/libarchive/cat/bsdcat.h | 22 +-
contrib/libarchive/cat/bsdcat_platform.h | 24 +-
contrib/libarchive/cat/cmdline.c | 22 +-
contrib/libarchive/cat/test/test.h | 22 +-
contrib/libarchive/cat/test/test_0.c | 22 +-
contrib/libarchive/cat/test/test_empty_gz.c | 22 +-
contrib/libarchive/cat/test/test_empty_lz4.c | 22 +-
contrib/libarchive/cat/test/test_empty_xz.c | 22 +-
contrib/libarchive/cat/test/test_empty_zstd.c | 22 +-
contrib/libarchive/cat/test/test_error.c | 22 +-
contrib/libarchive/cat/test/test_error_mixed.c | 22 +-
contrib/libarchive/cat/test/test_expand_Z.c | 22 +-
contrib/libarchive/cat/test/test_expand_bz2.c | 22 +-
contrib/libarchive/cat/test/test_expand_gz.c | 22 +-
contrib/libarchive/cat/test/test_expand_lz4.c | 22 +-
contrib/libarchive/cat/test/test_expand_mixed.c | 22 +-
contrib/libarchive/cat/test/test_expand_plain.c | 22 +-
contrib/libarchive/cat/test/test_expand_xz.c | 22 +-
contrib/libarchive/cat/test/test_expand_zstd.c | 22 +-
contrib/libarchive/cat/test/test_help.c | 22 +-
contrib/libarchive/cat/test/test_stdin.c | 22 +-
contrib/libarchive/cat/test/test_version.c | 22 +-
contrib/libarchive/cpio/bsdcpio.1 | 24 +-
contrib/libarchive/cpio/cmdline.c | 76 +-
contrib/libarchive/cpio/cpio.c | 70 +-
contrib/libarchive/cpio/cpio.h | 30 +-
contrib/libarchive/cpio/cpio_platform.h | 22 +-
contrib/libarchive/cpio/test/test.h | 22 +-
contrib/libarchive/cpio/test/test_0.c | 22 +-
contrib/libarchive/cpio/test/test_basic.c | 22 +-
contrib/libarchive/cpio/test/test_cmdline.c | 22 +-
contrib/libarchive/cpio/test/test_extract_cpio_Z.c | 22 +-
.../cpio/test/test_extract_cpio_absolute_paths.c | 53 +
.../libarchive/cpio/test/test_extract_cpio_bz2.c | 22 +-
.../libarchive/cpio/test/test_extract_cpio_grz.c | 22 +-
.../libarchive/cpio/test/test_extract_cpio_gz.c | 22 +-
.../libarchive/cpio/test/test_extract_cpio_lrz.c | 22 +-
.../libarchive/cpio/test/test_extract_cpio_lz.c | 22 +-
.../libarchive/cpio/test/test_extract_cpio_lz4.c | 22 +-
.../libarchive/cpio/test/test_extract_cpio_lzma.c | 22 +-
.../libarchive/cpio/test/test_extract_cpio_lzo.c | 22 +-
.../libarchive/cpio/test/test_extract_cpio_xz.c | 22 +-
.../libarchive/cpio/test/test_extract_cpio_zstd.c | 22 +-
contrib/libarchive/cpio/test/test_format_newc.c | 28 +-
contrib/libarchive/cpio/test/test_gcpio_compat.c | 22 +-
contrib/libarchive/cpio/test/test_missing_file.c | 22 +-
contrib/libarchive/cpio/test/test_option_0.c | 22 +-
contrib/libarchive/cpio/test/test_option_B_upper.c | 22 +-
contrib/libarchive/cpio/test/test_option_C_upper.c | 22 +-
contrib/libarchive/cpio/test/test_option_J_upper.c | 22 +-
contrib/libarchive/cpio/test/test_option_L_upper.c | 22 +-
contrib/libarchive/cpio/test/test_option_Z_upper.c | 22 +-
contrib/libarchive/cpio/test/test_option_a.c | 22 +-
.../libarchive/cpio/test/test_option_b64encode.c | 22 +-
contrib/libarchive/cpio/test/test_option_c.c | 30 +-
contrib/libarchive/cpio/test/test_option_d.c | 24 +-
contrib/libarchive/cpio/test/test_option_f.c | 22 +-
contrib/libarchive/cpio/test/test_option_grzip.c | 22 +-
contrib/libarchive/cpio/test/test_option_help.c | 22 +-
contrib/libarchive/cpio/test/test_option_l.c | 22 +-
contrib/libarchive/cpio/test/test_option_lrzip.c | 22 +-
contrib/libarchive/cpio/test/test_option_lz4.c | 22 +-
contrib/libarchive/cpio/test/test_option_lzma.c | 22 +-
contrib/libarchive/cpio/test/test_option_lzop.c | 22 +-
contrib/libarchive/cpio/test/test_option_m.c | 22 +-
.../libarchive/cpio/test/test_option_passphrase.c | 22 +-
contrib/libarchive/cpio/test/test_option_t.c | 29 +-
contrib/libarchive/cpio/test/test_option_u.c | 22 +-
.../libarchive/cpio/test/test_option_uuencode.c | 22 +-
contrib/libarchive/cpio/test/test_option_version.c | 22 +-
contrib/libarchive/cpio/test/test_option_xz.c | 22 +-
contrib/libarchive/cpio/test/test_option_y.c | 22 +-
contrib/libarchive/cpio/test/test_option_z.c | 22 +-
contrib/libarchive/cpio/test/test_option_zstd.c | 22 +-
contrib/libarchive/cpio/test/test_owner_parse.c | 112 +-
.../libarchive/cpio/test/test_passthrough_dotdot.c | 22 +-
.../cpio/test/test_passthrough_reverse.c | 22 +-
contrib/libarchive/libarchive/archive.h | 4 +-
contrib/libarchive/libarchive/archive_acl.c | 71 +-
.../libarchive/libarchive/archive_acl_private.h | 2 +
contrib/libarchive/libarchive/archive_crc32.h | 5 +
contrib/libarchive/libarchive/archive_cryptor.c | 4 +-
.../libarchive/archive_cryptor_private.h | 2 +-
contrib/libarchive/libarchive/archive_entry.c | 300 ++-
contrib/libarchive/libarchive/archive_entry.h | 8 +-
.../libarchive/archive_entry_link_resolver.c | 15 +
.../libarchive/libarchive/archive_entry_perms.3 | 1 +
.../libarchive/libarchive/archive_entry_private.h | 4 +-
.../libarchive/libarchive/archive_entry_sparse.c | 2 +-
.../libarchive/libarchive/archive_entry_xattr.c | 2 +-
contrib/libarchive/libarchive/archive_hmac.c | 2 +-
.../libarchive/libarchive/archive_hmac_private.h | 2 +-
contrib/libarchive/libarchive/archive_match.c | 2 +-
.../libarchive/archive_openssl_evp_private.h | 2 +-
.../libarchive/archive_openssl_hmac_private.h | 2 +-
contrib/libarchive/libarchive/archive_ppmd7.c | 2 +-
contrib/libarchive/libarchive/archive_ppmd8.c | 7 +-
contrib/libarchive/libarchive/archive_private.h | 6 +-
contrib/libarchive/libarchive/archive_read.c | 8 +-
.../libarchive/archive_read_append_filter.c | 8 +-
.../libarchive/archive_read_disk_entry_from_file.c | 1 +
.../libarchive/archive_read_disk_posix.c | 2 +-
.../libarchive/libarchive/archive_read_extract2.c | 2 +-
.../libarchive/libarchive/archive_read_open_fd.c | 2 +-
.../libarchive/libarchive/archive_read_open_file.c | 2 +-
.../libarchive/archive_read_open_filename.c | 4 +-
.../libarchive/archive_read_open_memory.c | 2 +-
.../libarchive/archive_read_support_filter_bzip2.c | 4 +-
.../archive_read_support_filter_compress.c | 2 +-
.../libarchive/archive_read_support_filter_gzip.c | 18 +-
.../libarchive/archive_read_support_filter_lz4.c | 6 +-
.../libarchive/archive_read_support_filter_lzop.c | 5 +-
.../archive_read_support_filter_program.c | 6 +-
.../libarchive/archive_read_support_filter_rpm.c | 45 +-
.../libarchive/archive_read_support_filter_uu.c | 16 +-
.../libarchive/archive_read_support_filter_xz.c | 4 +-
.../libarchive/archive_read_support_filter_zstd.c | 4 +-
.../libarchive/archive_read_support_format_7zip.c | 93 +-
.../libarchive/archive_read_support_format_ar.c | 10 +-
.../libarchive/archive_read_support_format_cab.c | 12 +-
.../libarchive/archive_read_support_format_cpio.c | 32 +-
.../archive_read_support_format_iso9660.c | 305 ++-
.../libarchive/archive_read_support_format_lha.c | 11 +-
.../libarchive/archive_read_support_format_mtree.c | 2 +-
.../libarchive/archive_read_support_format_rar.c | 128 +-
.../libarchive/archive_read_support_format_rar5.c | 171 +-
.../libarchive/archive_read_support_format_raw.c | 2 +-
.../libarchive/archive_read_support_format_tar.c | 2221 +++++++++++++-------
.../libarchive/archive_read_support_format_xar.c | 32 +-
.../libarchive/archive_read_support_format_zip.c | 45 +-
contrib/libarchive/libarchive/archive_string.c | 86 +-
contrib/libarchive/libarchive/archive_util.c | 16 +-
contrib/libarchive/libarchive/archive_write.c | 19 +-
.../archive_write_add_filter_b64encode.c | 6 +-
.../libarchive/archive_write_add_filter_bzip2.c | 5 +-
.../libarchive/archive_write_add_filter_compress.c | 4 +-
.../libarchive/archive_write_add_filter_gzip.c | 3 +-
.../libarchive/archive_write_add_filter_uuencode.c | 2 +-
.../libarchive/archive_write_add_filter_xz.c | 5 +-
.../libarchive/archive_write_add_filter_zstd.c | 3 +-
.../libarchive/archive_write_disk_posix.c | 16 +-
.../libarchive/libarchive/archive_write_open_fd.c | 2 +-
.../libarchive/archive_write_open_file.c | 2 +-
.../libarchive/archive_write_open_filename.c | 2 +-
.../libarchive/archive_write_open_memory.c | 2 +-
.../libarchive/archive_write_set_format_7zip.c | 16 +-
.../libarchive/archive_write_set_format_ar.c | 6 +-
.../archive_write_set_format_cpio_binary.c | 5 +-
.../archive_write_set_format_cpio_newc.c | 2 +-
.../libarchive/archive_write_set_format_cpio_odc.c | 5 +-
.../libarchive/archive_write_set_format_gnutar.c | 6 +-
.../libarchive/archive_write_set_format_iso9660.c | 2 +-
.../libarchive/archive_write_set_format_pax.c | 24 +-
.../libarchive/archive_write_set_format_raw.c | 2 +-
.../libarchive/archive_write_set_format_shar.c | 10 +-
.../libarchive/archive_write_set_format_ustar.c | 8 +-
.../libarchive/archive_write_set_format_v7tar.c | 4 +-
.../libarchive/archive_write_set_format_xar.c | 26 +-
.../libarchive/archive_write_set_format_zip.c | 10 +-
.../libarchive/test/test_7zip_filename_encoding.c | 100 +
contrib/libarchive/libarchive/test/test_ar_mode.c | 40 +
.../libarchive/test/test_archive_match_time.c | 60 +-
.../libarchive/libarchive/test/test_archive_read.c | 63 +
.../test/test_archive_read_multiple_data_objects.c | 23 +-
.../libarchive/test/test_archive_string.c | 2 +-
.../test/test_archive_string_conversion.c | 135 ++
.../test/test_archive_write_add_filter_by_name.c | 2 +-
.../libarchive/libarchive/test/test_compat_lzip.c | 2 +-
.../test/test_compat_solaris_pax_sparse.c | 2 +-
contrib/libarchive/libarchive/test/test_entry.c | 14 +-
.../test/test_gnutar_filename_encoding.c | 102 +
.../libarchive/test/test_link_resolver.c | 45 +
.../libarchive/test/test_pax_filename_encoding.c | 152 ++
.../test/test_read_filter_gzip_recursive.c | 50 +
.../test/test_read_filter_gzip_recursive.gz.uu | 19 +
.../libarchive/test/test_read_format_7zip.c | 44 +
.../test_read_format_7zip_extract_second.7z.uu | 11 +
.../libarchive/test/test_read_format_cpio_afio.c | 30 +-
.../libarchive/test/test_read_format_huge_rpm.c | 50 +
.../test/test_read_format_huge_rpm.rpm.uu | 244 +++
.../test/test_read_format_iso_3.iso.Z.uu | 40 +
.../libarchive/test/test_read_format_iso_Z.c | 122 +-
.../libarchive/test/test_read_format_mtree.c | 2 +-
.../test/test_read_format_rar4_encrypted.rar.uu | 10 +
...est_read_format_rar4_encrypted_filenames.rar.uu | 14 +
.../test_read_format_rar4_solid_encrypted.rar.uu | 11 +
...ad_format_rar4_solid_encrypted_filenames.rar.uu | 13 +
.../libarchive/test/test_read_format_rar5.c | 39 +-
...read_format_rar5_data_ready_pointer_leak.rar.uu | 28 +
.../test/test_read_format_rar5_encrypted.rar.uu | 12 +
...est_read_format_rar5_encrypted_filenames.rar.uu | 19 +
.../test_read_format_rar5_solid_encrypted.rar.uu | 14 +
...ad_format_rar5_solid_encrypted_filenames.rar.uu | 18 +
.../test/test_read_format_rar_encryption.c | 176 ++
.../libarchive/test/test_read_format_tar.c | 2 +-
.../test/test_read_format_tar_pax_large_attr.c | 65 +
.../test_read_format_tar_pax_large_attr.tar.Z.uu | 149 ++
.../libarchive/test/test_read_format_xar.c | 37 +-
..._read_format_xar_duplicate_filename_node.xar.uu | 14 +
.../libarchive/test/test_read_format_zip_nested.c | 2 +-
...t_read_format_zip_traditional_encryption_data.c | 2 +-
.../test/test_read_format_zip_winzip_aes.c | 2 +-
.../test/test_read_format_zip_winzip_aes_large.c | 2 +-
.../libarchive/test/test_read_truncated_filter.c | 4 +-
.../libarchive/libarchive/test/test_sparse_basic.c | 17 +-
.../libarchive/libarchive/test/test_tar_large.c | 2 +-
.../libarchive/test/test_ustar_filename_encoding.c | 102 +
.../test/test_write_disk_secure_noabsolutepaths.c | 88 +
.../libarchive/test/test_write_filter_b64encode.c | 4 +-
.../libarchive/test/test_write_filter_bzip2.c | 4 +-
.../libarchive/test/test_write_filter_compress.c | 4 +-
.../libarchive/test/test_write_filter_gzip.c | 4 +-
.../test/test_write_filter_gzip_timestamp.c | 4 +-
.../libarchive/test/test_write_filter_lrzip.c | 4 +-
.../libarchive/test/test_write_filter_lz4.c | 8 +-
.../libarchive/test/test_write_filter_lzip.c | 4 +-
.../libarchive/test/test_write_filter_lzma.c | 4 +-
.../libarchive/test/test_write_filter_lzop.c | 4 +-
.../libarchive/test/test_write_filter_uuencode.c | 4 +-
.../libarchive/test/test_write_filter_xz.c | 4 +-
.../libarchive/test/test_write_filter_zstd.c | 12 +-
.../test/test_write_format_iso9660_filename.c | 2 +-
.../libarchive/test/test_write_format_zip.c | 6 +-
.../test/test_write_format_zip_entry_size_unset.c | 2 +-
.../libarchive/test/test_write_format_zip_large.c | 2 +-
.../libarchive/test/test_write_format_zip_stream.c | 5 +
.../test/test_write_format_zip_windows_path.c | 100 +
.../libarchive/test/test_zip_filename_encoding.c | 95 +
contrib/libarchive/tar/bsdtar.1 | 24 +-
contrib/libarchive/tar/bsdtar.c | 25 +-
contrib/libarchive/tar/bsdtar.h | 22 +-
contrib/libarchive/tar/bsdtar_platform.h | 24 +-
contrib/libarchive/tar/cmdline.c | 22 +-
contrib/libarchive/tar/creation_set.c | 24 +-
contrib/libarchive/tar/read.c | 22 +-
contrib/libarchive/tar/subst.c | 22 +-
contrib/libarchive/tar/test/test.h | 22 +-
contrib/libarchive/tar/test/test_0.c | 22 +-
contrib/libarchive/tar/test/test_basic.c | 22 +-
contrib/libarchive/tar/test/test_copy.c | 58 +-
contrib/libarchive/tar/test/test_empty_mtree.c | 22 +-
contrib/libarchive/tar/test/test_extract_tar_Z.c | 22 +-
contrib/libarchive/tar/test/test_extract_tar_bz2.c | 22 +-
contrib/libarchive/tar/test/test_extract_tar_grz.c | 22 +-
contrib/libarchive/tar/test/test_extract_tar_gz.c | 22 +-
contrib/libarchive/tar/test/test_extract_tar_lrz.c | 22 +-
contrib/libarchive/tar/test/test_extract_tar_lz.c | 22 +-
contrib/libarchive/tar/test/test_extract_tar_lz4.c | 22 +-
.../libarchive/tar/test/test_extract_tar_lzma.c | 22 +-
contrib/libarchive/tar/test/test_extract_tar_lzo.c | 22 +-
contrib/libarchive/tar/test/test_extract_tar_xz.c | 22 +-
.../libarchive/tar/test/test_extract_tar_zstd.c | 22 +-
contrib/libarchive/tar/test/test_format_newc.c | 22 +-
contrib/libarchive/tar/test/test_help.c | 22 +-
contrib/libarchive/tar/test/test_leading_slash.c | 22 +-
contrib/libarchive/tar/test/test_missing_file.c | 22 +-
contrib/libarchive/tar/test/test_option_C_mtree.c | 30 +-
contrib/libarchive/tar/test/test_option_C_upper.c | 22 +-
contrib/libarchive/tar/test/test_option_H_upper.c | 40 +-
contrib/libarchive/tar/test/test_option_L_upper.c | 40 +-
contrib/libarchive/tar/test/test_option_O_upper.c | 22 +-
contrib/libarchive/tar/test/test_option_P.c | 82 +
contrib/libarchive/tar/test/test_option_T_upper.c | 22 +-
contrib/libarchive/tar/test/test_option_U_upper.c | 22 +-
contrib/libarchive/tar/test/test_option_X_upper.c | 22 +-
contrib/libarchive/tar/test/test_option_a.c | 22 +-
contrib/libarchive/tar/test/test_option_acls.c | 22 +-
contrib/libarchive/tar/test/test_option_b.c | 22 +-
.../libarchive/tar/test/test_option_b64encode.c | 22 +-
contrib/libarchive/tar/test/test_option_exclude.c | 22 +-
.../libarchive/tar/test/test_option_exclude_vcs.c | 24 +-
contrib/libarchive/tar/test/test_option_fflags.c | 24 +-
.../libarchive/tar/test/test_option_gid_gname.c | 22 +-
contrib/libarchive/tar/test/test_option_group.c | 22 +-
contrib/libarchive/tar/test/test_option_grzip.c | 22 +-
.../libarchive/tar/test/test_option_ignore_zeros.c | 31 +-
contrib/libarchive/tar/test/test_option_j.c | 22 +-
contrib/libarchive/tar/test/test_option_k.c | 22 +-
.../tar/test/test_option_keep_newer_files.c | 22 +-
contrib/libarchive/tar/test/test_option_lrzip.c | 22 +-
contrib/libarchive/tar/test/test_option_lz4.c | 22 +-
contrib/libarchive/tar/test/test_option_lzma.c | 22 +-
contrib/libarchive/tar/test/test_option_lzop.c | 22 +-
contrib/libarchive/tar/test/test_option_n.c | 22 +-
.../libarchive/tar/test/test_option_newer_than.c | 22 +-
contrib/libarchive/tar/test/test_option_nodump.c | 22 +-
.../libarchive/tar/test/test_option_older_than.c | 22 +-
contrib/libarchive/tar/test/test_option_owner.c | 22 +-
.../libarchive/tar/test/test_option_passphrase.c | 22 +-
contrib/libarchive/tar/test/test_option_q.c | 22 +-
contrib/libarchive/tar/test/test_option_r.c | 22 +-
contrib/libarchive/tar/test/test_option_s.c | 22 +-
.../libarchive/tar/test/test_option_safe_writes.c | 22 +-
.../libarchive/tar/test/test_option_uid_uname.c | 22 +-
contrib/libarchive/tar/test/test_option_uuencode.c | 22 +-
contrib/libarchive/tar/test/test_option_xattrs.c | 24 +-
contrib/libarchive/tar/test/test_option_xz.c | 22 +-
contrib/libarchive/tar/test/test_option_z.c | 22 +-
contrib/libarchive/tar/test/test_option_zstd.c | 22 +-
contrib/libarchive/tar/test/test_patterns.c | 22 +-
contrib/libarchive/tar/test/test_print_longpath.c | 22 +-
contrib/libarchive/tar/test/test_stdio.c | 22 +-
.../libarchive/tar/test/test_strip_components.c | 22 +-
contrib/libarchive/tar/test/test_symlink_dir.c | 22 +-
contrib/libarchive/tar/test/test_version.c | 22 +-
contrib/libarchive/tar/util.c | 42 +-
contrib/libarchive/tar/write.c | 35 +-
contrib/libarchive/test_utils/test_common.h | 5 +-
contrib/libarchive/test_utils/test_main.c | 101 +-
contrib/libarchive/unzip/bsdunzip.1 | 25 +-
contrib/libarchive/unzip/bsdunzip.c | 49 +-
contrib/libarchive/unzip/bsdunzip.h | 22 +-
contrib/libarchive/unzip/bsdunzip_platform.h | 24 +-
contrib/libarchive/unzip/cmdline.c | 22 +-
contrib/libarchive/unzip/la_getline.c | 26 +-
contrib/libarchive/unzip/test/test.h | 22 +-
contrib/libarchive/unzip/test/test_0.c | 22 +-
contrib/libarchive/unzip/test/test_C.c | 23 +-
contrib/libarchive/unzip/test/test_I.c | 40 +-
contrib/libarchive/unzip/test/test_L.c | 23 +-
contrib/libarchive/unzip/test/test_P_encryption.c | 25 +-
contrib/libarchive/unzip/test/test_Z1.c | 23 +-
contrib/libarchive/unzip/test/test_basic.c | 23 +-
contrib/libarchive/unzip/test/test_d.c | 23 +-
contrib/libarchive/unzip/test/test_doubledash.c | 23 +-
contrib/libarchive/unzip/test/test_glob.c | 23 +-
contrib/libarchive/unzip/test/test_j.c | 23 +-
contrib/libarchive/unzip/test/test_n.c | 25 +-
contrib/libarchive/unzip/test/test_not_exist.c | 25 +-
contrib/libarchive/unzip/test/test_o.c | 25 +-
contrib/libarchive/unzip/test/test_p.c | 23 +-
contrib/libarchive/unzip/test/test_q.c | 23 +-
contrib/libarchive/unzip/test/test_singlefile.c | 23 +-
contrib/libarchive/unzip/test/test_t.c | 23 +-
contrib/libarchive/unzip/test/test_t_bad.c | 23 +-
contrib/libarchive/unzip/test/test_version.c | 22 +-
contrib/libarchive/unzip/test/test_x.c | 23 +-
lib/libarchive/tests/Makefile | 24 +
usr.bin/cpio/tests/Makefile | 1 +
usr.bin/tar/tests/Makefile | 1 +
343 files changed, 5857 insertions(+), 5333 deletions(-)
diff --cc contrib/libarchive/cpio/test/test_extract_cpio_absolute_paths.c
index 000000000000,66fc56641bd0..51650bc00f5a
mode 000000,100644..100644
--- a/contrib/libarchive/cpio/test/test_extract_cpio_absolute_paths.c
+++ b/contrib/libarchive/cpio/test/test_extract_cpio_absolute_paths.c
@@@ -1,0 -1,53 +1,53 @@@
+ /*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2024 Mostyn Bramley-Moore <mostyn@antipode.se>
+ */
+
+ #include "test.h"
+
+ #include <stdlib.h>
+ #include <string.h>
+
+ #if defined(_WIN32) && !defined(__CYGWIN__)
+ #define UNLINK _unlink
+ #else
+ #define UNLINK unlink
+ #endif
+
+ DEFINE_TEST(test_extract_cpio_absolute_paths)
+ {
+ int r;
+
+ // Create an absolute path for a test file inside testworkdir.
- char *entry_suffix = "/cpio-noabs";
++ const char *entry_suffix = "/cpio-noabs";
+ size_t entry_suffix_length = strlen(entry_suffix);
+ size_t testworkdir_length = strlen(testworkdir);
+ size_t temp_absolute_file_name_length = testworkdir_length + entry_suffix_length;
+ char *temp_absolute_file_name = calloc(1, temp_absolute_file_name_length + 1); // +1 for null character.
+ assertEqualInt(snprintf(temp_absolute_file_name, temp_absolute_file_name_length + 1, "%s%s", testworkdir, entry_suffix),
+ temp_absolute_file_name_length);
+
+ // Create the file.
+ const char *sample_data = "test file from test_extract_cpio_absolute_paths";
+ assertMakeFile(temp_absolute_file_name, 0644, sample_data);
+
+ // Create an archive with the test file, using an absolute path.
+ assertMakeFile("filelist", 0644, temp_absolute_file_name);
+ r = systemf("%s -o < filelist > archive.cpio 2> stderr1.txt", testprog);
+ assertEqualInt(r, 0);
+
+ // Ensure that the temp file does not exist.
+ UNLINK(temp_absolute_file_name);
+
+ // We should refuse to create the absolute path without --insecure.
+ r = systemf("%s -i < archive.cpio 2> stderr2.txt", testprog);
+ assert(r != 0);
+ assertFileNotExists(temp_absolute_file_name);
+ UNLINK(temp_absolute_file_name); // Cleanup just in case.
+
+ // But if we specify --insecure then the absolute path should be created.
+ r = systemf("%s -i --insecure < archive.cpio 2> stderr3.txt", testprog);
+ assert(r == 0);
+ assertFileExists(temp_absolute_file_name);
+ }
diff --cc contrib/libarchive/libarchive/test/test_7zip_filename_encoding.c
index 000000000000,cf562d39fda7..cf562d39fda7
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_7zip_filename_encoding.c
+++ b/contrib/libarchive/libarchive/test/test_7zip_filename_encoding.c
diff --cc contrib/libarchive/libarchive/test/test_ar_mode.c
index 000000000000,4f9feb1210d2..4f9feb1210d2
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_ar_mode.c
+++ b/contrib/libarchive/libarchive/test/test_ar_mode.c
diff --cc contrib/libarchive/libarchive/test/test_archive_read.c
index 000000000000,583e5166a0be..583e5166a0be
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_archive_read.c
+++ b/contrib/libarchive/libarchive/test/test_archive_read.c
diff --cc contrib/libarchive/libarchive/test/test_read_filter_gzip_recursive.c
index 000000000000,0042a0511d5a..0042a0511d5a
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_filter_gzip_recursive.c
+++ b/contrib/libarchive/libarchive/test/test_read_filter_gzip_recursive.c
diff --cc contrib/libarchive/libarchive/test/test_read_filter_gzip_recursive.gz.uu
index 000000000000,14b0476bed40..14b0476bed40
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_filter_gzip_recursive.gz.uu
+++ b/contrib/libarchive/libarchive/test/test_read_filter_gzip_recursive.gz.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_7zip_extract_second.7z.uu
index 000000000000,aa3d6e235784..aa3d6e235784
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_7zip_extract_second.7z.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_7zip_extract_second.7z.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_huge_rpm.c
index 000000000000,729c1e188d28..729c1e188d28
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_huge_rpm.c
+++ b/contrib/libarchive/libarchive/test/test_read_format_huge_rpm.c
diff --cc contrib/libarchive/libarchive/test/test_read_format_huge_rpm.rpm.uu
index 000000000000,db2111859662..db2111859662
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_huge_rpm.rpm.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_huge_rpm.rpm.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_iso_3.iso.Z.uu
index 000000000000,e7734ab33bf3..e7734ab33bf3
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_iso_3.iso.Z.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_iso_3.iso.Z.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_rar4_encrypted.rar.uu
index 000000000000,584183b4a46f..584183b4a46f
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_rar4_encrypted.rar.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_rar4_encrypted.rar.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_rar4_encrypted_filenames.rar.uu
index 000000000000,3d7aa806a86d..3d7aa806a86d
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_rar4_encrypted_filenames.rar.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_rar4_encrypted_filenames.rar.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_rar4_solid_encrypted.rar.uu
index 000000000000,7d73ee86d9ef..7d73ee86d9ef
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_rar4_solid_encrypted.rar.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_rar4_solid_encrypted.rar.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_rar4_solid_encrypted_filenames.rar.uu
index 000000000000,6c28e955d0e1..6c28e955d0e1
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_rar4_solid_encrypted_filenames.rar.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_rar4_solid_encrypted_filenames.rar.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_rar5_data_ready_pointer_leak.rar.uu
index 000000000000,8c8c90778b9d..8c8c90778b9d
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_rar5_data_ready_pointer_leak.rar.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_rar5_data_ready_pointer_leak.rar.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_rar5_encrypted.rar.uu
index 000000000000,0a52fa26bb3c..0a52fa26bb3c
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_rar5_encrypted.rar.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_rar5_encrypted.rar.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_rar5_encrypted_filenames.rar.uu
index 000000000000,931240a16d49..931240a16d49
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_rar5_encrypted_filenames.rar.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_rar5_encrypted_filenames.rar.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_rar5_solid_encrypted.rar.uu
index 000000000000,d3113a305917..d3113a305917
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_rar5_solid_encrypted.rar.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_rar5_solid_encrypted.rar.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_rar5_solid_encrypted_filenames.rar.uu
index 000000000000,4f3dbfb33127..4f3dbfb33127
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_rar5_solid_encrypted_filenames.rar.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_rar5_solid_encrypted_filenames.rar.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_rar_encryption.c
index 000000000000,a184b86b5ffe..a184b86b5ffe
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_rar_encryption.c
+++ b/contrib/libarchive/libarchive/test/test_read_format_rar_encryption.c
diff --cc contrib/libarchive/libarchive/test/test_read_format_tar_pax_large_attr.c
index 000000000000,1c2b55f9c6fb..1c2b55f9c6fb
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_tar_pax_large_attr.c
+++ b/contrib/libarchive/libarchive/test/test_read_format_tar_pax_large_attr.c
diff --cc contrib/libarchive/libarchive/test/test_read_format_tar_pax_large_attr.tar.Z.uu
index 000000000000,01eb55588ea7..01eb55588ea7
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_tar_pax_large_attr.tar.Z.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_tar_pax_large_attr.tar.Z.uu
diff --cc contrib/libarchive/libarchive/test/test_read_format_xar_duplicate_filename_node.xar.uu
index 000000000000,18cbcf5898df..18cbcf5898df
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_read_format_xar_duplicate_filename_node.xar.uu
+++ b/contrib/libarchive/libarchive/test/test_read_format_xar_duplicate_filename_node.xar.uu
diff --cc contrib/libarchive/libarchive/test/test_write_disk_secure_noabsolutepaths.c
index 000000000000,df244727fe44..1c9254a42093
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_write_disk_secure_noabsolutepaths.c
+++ b/contrib/libarchive/libarchive/test/test_write_disk_secure_noabsolutepaths.c
@@@ -1,0 -1,88 +1,88 @@@
+ /*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2024 Mostyn Bramley-Moore <mostyn@antipode.se>
+ */
+
+ #include "test.h"
+
+ #include <stdlib.h>
+
+ #if defined(_WIN32) && !defined(__CYGWIN__)
+ #define UNLINK _unlink
+ #else
+ #include <unistd.h>
+ #define UNLINK unlink
+ #endif
+
+ /*
+ * Exercise security checks that should prevent writing absolute paths
+ * when extracting archives.
+ */
+ DEFINE_TEST(test_write_disk_secure_noabsolutepaths)
+ {
+ struct archive *a, *ad;
+ struct archive_entry *ae;
+
+ char buff[10000];
+
+ size_t used;
+
+ // Create an archive_write object.
+ assert((a = archive_write_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff), &used));
+
+ // Create an absolute path for a test file inside testworkdir.
- char *entry_suffix = "/badfile";
++ const char *entry_suffix = "/badfile";
+ size_t entry_suffix_length = strlen(entry_suffix);
+ size_t testworkdir_length = strlen(testworkdir);
+ size_t temp_absolute_file_name_length = testworkdir_length + entry_suffix_length;
+ char *temp_absolute_file_name = calloc(1, temp_absolute_file_name_length + 1); // +1 for null character.
+ assertEqualInt(snprintf(temp_absolute_file_name, temp_absolute_file_name_length + 1, "%s%s", testworkdir, entry_suffix),
+ temp_absolute_file_name_length);
+
+ // Convert to a unix-style path, so we can compare it to the entry
+ // path when reading back the archive.
+ for (char *p = temp_absolute_file_name; *p != '\0'; p++)
+ if (*p == '\\') *p = '/';
+
+ // Add a regular file entry with an absolute path.
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, temp_absolute_file_name);
+ archive_entry_set_mode(ae, S_IFREG | 0777);
+ archive_entry_set_size(ae, 6);
+ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, ae));
+ archive_entry_free(ae);
+ assertEqualInt(6, archive_write_data(a, "hello", 6));
+ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_write_free(a));
+
+ // Now try to extract the data.
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(temp_absolute_file_name, archive_entry_pathname(ae));
+ assertEqualInt(AE_IFREG, archive_entry_filetype(ae));
+ assertEqualInt(AE_IFREG | 0777, archive_entry_mode(ae));
+ assertEqualInt(6, archive_entry_size(ae));
+
+ // This should succeed.
+ assertEqualInt(ARCHIVE_OK, archive_read_extract(a, ae, 0));
+ UNLINK(temp_absolute_file_name);
+
+ // This should fail, since the archive entry has an absolute path.
+ assert(ARCHIVE_OK != archive_read_extract(a, ae, ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS));
+
+ // This should also fail.
+ assert((ad = archive_write_new()) != NULL);
+ assertEqualInt(ARCHIVE_OK, archive_write_disk_set_options(a, ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS));
+ assert(ARCHIVE_OK != archive_read_extract2(a, ae, ad));
+
+ assertEqualInt(ARCHIVE_OK, archive_write_free(ad));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ }
diff --cc contrib/libarchive/libarchive/test/test_write_format_zip_windows_path.c
index 000000000000,c8be48293638..c8be48293638
mode 000000,100644..100644
--- a/contrib/libarchive/libarchive/test/test_write_format_zip_windows_path.c
+++ b/contrib/libarchive/libarchive/test/test_write_format_zip_windows_path.c
diff --cc contrib/libarchive/tar/test/test_option_P.c
index 000000000000,e63da3e0875c..e63da3e0875c
mode 000000,100644..100644
--- a/contrib/libarchive/tar/test/test_option_P.c
+++ b/contrib/libarchive/tar/test/test_option_P.c
diff --cc lib/libarchive/tests/Makefile
index dc3767c319c3,000000000000..2684d1661e57
mode 100644,000000..100644
--- a/lib/libarchive/tests/Makefile
+++ b/lib/libarchive/tests/Makefile
@@@ -1,689 -1,0 +1,713 @@@
+.include <src.opts.mk>
+
+PACKAGE= tests
+
+WARNS?= 3
+
+_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive
+
+ATF_TESTS_SH+= functional_test
+
+TEST_METADATA.functional_test+= timeout="600"
+
+BINDIR= ${TESTSDIR}
+
+PROGS+= libarchive_test
+
+CFLAGS+= -I${.CURDIR} -I${.CURDIR:H} -I${.OBJDIR}
+CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive -I${_LIBARCHIVEDIR}/libarchive/test
+CFLAGS+= -I${_LIBARCHIVEDIR}/test_utils
+
+CFLAGS.test_utils.c+= -Wno-cast-align
+
+# Uncomment to link against dmalloc
+#LDADD+= -L/usr/local/lib -ldmalloc
+#CFLAGS+= -I/usr/local/include -DUSE_DMALLOC
+
+.PATH: ${_LIBARCHIVEDIR}/libarchive/test
+TESTS_SRCS= \
++ test_7zip_filename_encoding.c \
+ test_acl_nfs4.c \
+ test_acl_pax.c \
+ test_acl_platform_nfs4.c \
+ test_acl_platform_posix1e.c \
+ test_acl_posix1e.c \
+ test_acl_text.c \
++ test_ar_mode.c \
+ test_archive_api_feature.c \
+ test_archive_clear_error.c \
+ test_archive_cmdline.c \
+ test_archive_digest.c \
+ test_archive_getdate.c \
+ test_archive_match_time.c \
+ test_archive_match_owner.c \
+ test_archive_match_path.c \
+ test_archive_pathmatch.c \
++ test_archive_read.c \
+ test_archive_read_add_passphrase.c \
+ test_archive_read_close_twice.c \
+ test_archive_read_close_twice_open_fd.c \
+ test_archive_read_close_twice_open_filename.c \
+ test_archive_read_multiple_data_objects.c \
+ test_archive_read_next_header_empty.c \
+ test_archive_read_next_header_raw.c \
+ test_archive_read_open2.c \
+ test_archive_read_set_filter_option.c \
+ test_archive_read_set_format_option.c \
+ test_archive_read_set_option.c \
+ test_archive_read_set_options.c \
+ test_archive_read_support.c \
+ test_archive_set_error.c \
+ test_archive_string.c \
+ test_archive_string_conversion.c \
+ test_archive_write_add_filter_by_name.c \
+ test_archive_write_set_filter_option.c \
+ test_archive_write_set_format_by_name.c \
+ test_archive_write_set_format_filter_by_ext.c \
+ test_archive_write_set_format_option.c \
+ test_archive_write_set_option.c \
+ test_archive_write_set_options.c \
+ test_archive_write_set_passphrase.c \
+ test_bad_fd.c \
+ test_compat_bzip2.c \
+ test_compat_cpio.c \
+ test_compat_gtar.c \
+ test_compat_gzip.c \
+ test_compat_lz4.c \
+ test_compat_lzip.c \
+ test_compat_lzma.c \
+ test_compat_lzop.c \
+ test_compat_mac.c \
+ test_compat_perl_archive_tar.c \
+ test_compat_plexus_archiver_tar.c \
+ test_compat_solaris_tar_acl.c \
+ test_compat_solaris_pax_sparse.c \
+ test_compat_star_acl.c \
+ test_compat_tar_directory.c \
+ test_compat_tar_hardlink.c \
+ test_compat_uudecode.c \
+ test_compat_uudecode_large.c \
+ test_compat_xz.c \
+ test_compat_zip.c \
+ test_compat_zstd.c \
+ test_empty_write.c \
+ test_entry.c \
+ test_entry_strmode.c \
+ test_extattr_freebsd.c \
+ test_filter_count.c \
+ test_gnutar_filename_encoding.c \
+ test_link_resolver.c \
+ test_open_fd.c \
+ test_open_failure.c \
+ test_open_file.c \
+ test_open_filename.c \
+ test_pax_filename_encoding.c \
+ test_pax_xattr_header.c \
+ test_read_data_large.c \
+ test_read_disk.c \
+ test_read_disk_directory_traversals.c \
+ test_read_disk_entry_from_file.c \
+ test_read_extract.c \
+ test_read_file_nonexistent.c \
+ test_read_filter_compress.c \
+ test_read_filter_grzip.c \
++ test_read_filter_gzip_recursive.c \
+ test_read_filter_lrzip.c \
+ test_read_filter_lzop.c \
+ test_read_filter_lzop_multiple_parts.c \
+ test_read_filter_program.c \
+ test_read_filter_program_signature.c \
+ test_read_filter_uudecode.c \
+ test_read_filter_uudecode_raw.c \
+ test_read_format_7zip.c \
+ test_read_format_7zip_encryption_data.c \
+ test_read_format_7zip_encryption_header.c \
+ test_read_format_7zip_encryption_partially.c \
+ test_read_format_7zip_malformed.c \
+ test_read_format_7zip_packinfo_digests.c \
+ test_read_format_ar.c \
+ test_read_format_cab.c \
+ test_read_format_cab_filename.c \
+ test_read_format_cpio_afio.c \
+ test_read_format_cpio_bin.c \
+ test_read_format_cpio_bin_Z.c \
+ test_read_format_cpio_bin_be.c \
+ test_read_format_cpio_bin_bz2.c \
+ test_read_format_cpio_bin_gz.c \
+ test_read_format_cpio_bin_le.c \
+ test_read_format_cpio_bin_lzip.c \
+ test_read_format_cpio_bin_lzma.c \
+ test_read_format_cpio_bin_xz.c \
+ test_read_format_cpio_filename.c \
+ test_read_format_cpio_odc.c \
+ test_read_format_cpio_svr4_gzip.c \
+ test_read_format_cpio_svr4c_Z.c \
+ test_read_format_cpio_svr4_bzip2_rpm.c \
+ test_read_format_cpio_svr4_gzip_rpm.c \
+ test_read_format_empty.c \
+ test_read_format_gtar_filename.c \
+ test_read_format_gtar_gz.c \
+ test_read_format_gtar_lzma.c \
+ test_read_format_gtar_sparse.c \
+ test_read_format_gtar_sparse_skip_entry.c \
++ test_read_format_huge_rpm.c \
+ test_read_format_iso_Z.c \
+ test_read_format_iso_multi_extent.c \
+ test_read_format_iso_xorriso.c \
+ test_read_format_isorr_rr_moved.c \
+ test_read_format_isojoliet_bz2.c \
+ test_read_format_isojoliet_long.c \
+ test_read_format_isojoliet_rr.c \
+ test_read_format_isojoliet_versioned.c \
+ test_read_format_isorr_bz2.c \
+ test_read_format_isorr_ce.c \
+ test_read_format_isorr_new_bz2.c \
+ test_read_format_isozisofs_bz2.c \
+ test_read_format_lha.c \
+ test_read_format_lha_bugfix_0.c \
+ test_read_format_lha_filename.c \
+ test_read_format_lha_filename_utf16.c \
+ test_read_format_mtree.c \
+ test_read_format_mtree_crash747.c \
+ test_read_format_pax_bz2.c \
+ test_read_format_rar.c \
+ test_read_format_rar5.c \
++ test_read_format_rar_encryption.c \
+ test_read_format_rar_encryption_data.c \
+ test_read_format_rar_encryption_header.c \
+ test_read_format_rar_encryption_partially.c \
+ test_read_format_rar_filter.c \
+ test_read_format_rar_invalid1.c \
+ test_read_format_raw.c \
+ test_read_format_tar.c \
+ test_read_format_tar_concatenated.c \
+ test_read_format_tar_empty_filename.c \
+ test_read_format_tar_empty_pax.c \
+ test_read_format_tar_empty_with_gnulabel.c \
+ test_read_format_tar_filename.c \
+ test_read_format_tar_invalid_pax_size.c \
++ test_read_format_tar_pax_large_attr.c \
+ test_read_format_tbz.c \
+ test_read_format_tgz.c \
+ test_read_format_tlz.c \
+ test_read_format_txz.c \
+ test_read_format_tz.c \
+ test_read_format_ustar_filename.c \
+ test_read_format_warc.c \
+ test_read_format_xar.c \
+ test_read_format_xar_doublelink.c \
+ test_read_format_zip.c \
+ test_read_format_zip_7075_utf8_paths.c \
+ test_read_format_zip_comment_stored.c \
+ test_read_format_zip_encryption_data.c \
+ test_read_format_zip_encryption_header.c \
+ test_read_format_zip_encryption_partially.c \
+ test_read_format_zip_extra_padding.c \
+ test_read_format_zip_filename.c \
+ test_read_format_zip_high_compression.c \
+ test_read_format_zip_jar.c \
+ test_read_format_zip_mac_metadata.c \
+ test_read_format_zip_malformed.c \
+ test_read_format_zip_msdos.c \
+ test_read_format_zip_nested.c \
+ test_read_format_zip_nofiletype.c \
+ test_read_format_zip_padded.c \
+ test_read_format_zip_sfx.c \
+ test_read_format_zip_traditional_encryption_data.c \
+ test_read_format_zip_winzip_aes.c \
+ test_read_format_zip_winzip_aes_large.c \
+ test_read_format_zip_with_invalid_traditional_eocd.c \
+ test_read_format_zip_zip64.c \
+ test_read_large.c \
+ test_read_pax_xattr_rht_security_selinux.c \
+ test_read_pax_xattr_schily.c \
+ test_read_pax_truncated.c \
+ test_read_position.c \
+ test_read_set_format.c \
+ test_read_too_many_filters.c \
+ test_read_truncated.c \
+ test_read_truncated_filter.c \
+ test_short_writes.c \
+ test_sparse_basic.c \
+ test_tar_filenames.c \
+ test_tar_large.c \
+ test_warn_missing_hardlink_target.c \
+ test_ustar_filenames.c \
+ test_ustar_filename_encoding.c \
+ test_write_disk.c \
+ test_write_disk_appledouble.c \
+ test_write_disk_failures.c \
+ test_write_disk_fixup.c \
+ test_write_disk_hardlink.c \
+ test_write_disk_hfs_compression.c \
+ test_write_disk_lookup.c \
+ test_write_disk_mac_metadata.c \
+ test_write_disk_no_hfs_compression.c \
+ test_write_disk_perms.c \
+ test_write_disk_secure.c \
++ test_write_disk_secure_noabsolutepaths.c \
+ test_write_disk_secure744.c \
+ test_write_disk_secure745.c \
+ test_write_disk_secure746.c \
+ test_write_disk_sparse.c \
+ test_write_disk_symlink.c \
+ test_write_disk_times.c \
+ test_write_filter_b64encode.c \
+ test_write_filter_bzip2.c \
+ test_write_filter_compress.c \
+ test_write_filter_gzip.c \
+ test_write_filter_gzip_timestamp.c \
+ test_write_filter_lrzip.c \
+ test_write_filter_lz4.c \
+ test_write_filter_lzip.c \
+ test_write_filter_lzma.c \
+ test_write_filter_lzop.c \
+ test_write_filter_program.c \
+ test_write_filter_uuencode.c \
+ test_write_filter_xz.c \
+ test_write_filter_zstd.c \
+ test_write_format_7zip.c \
+ test_write_format_7zip_empty.c \
+ test_write_format_7zip_large.c \
+ test_write_format_ar.c \
+ test_write_format_cpio.c \
+ test_write_format_cpio_empty.c \
+ test_write_format_cpio_newc.c \
+ test_write_format_cpio_odc.c \
+ test_write_format_gnutar.c \
+ test_write_format_gnutar_filenames.c \
+ test_write_format_iso9660.c \
+ test_write_format_iso9660_boot.c \
+ test_write_format_iso9660_empty.c \
+ test_write_format_iso9660_filename.c \
+ test_write_format_iso9660_zisofs.c \
+ test_write_format_mtree.c \
+ test_write_format_mtree_absolute_path.c \
+ test_write_format_mtree_classic.c \
+ test_write_format_mtree_classic_indent.c \
+ test_write_format_mtree_fflags.c \
+ test_write_format_mtree_no_separator.c \
+ test_write_format_mtree_quoted_filename.c \
+ test_write_format_pax.c \
+ test_write_format_raw.c \
+ test_write_format_raw_b64.c \
+ test_write_format_shar_empty.c \
+ test_write_format_tar.c \
+ test_write_format_tar_empty.c \
+ test_write_format_tar_sparse.c \
+ test_write_format_tar_ustar.c \
+ test_write_format_tar_v7tar.c \
+ test_write_format_warc.c \
+ test_write_format_warc_empty.c \
+ test_write_format_xar.c \
+ test_write_format_xar_empty.c \
+ test_write_format_zip.c \
+ test_write_format_zip_compression_store.c \
+ test_write_format_zip_empty.c \
*** 675 LINES SKIPPED ***