summaryrefslogtreecommitdiff
path: root/archivers/libarchive/files/libarchive/test
diff options
context:
space:
mode:
Diffstat (limited to 'archivers/libarchive/files/libarchive/test')
-rw-r--r--archivers/libarchive/files/libarchive/test/CMakeLists.txt5
-rw-r--r--archivers/libarchive/files/libarchive/test/list.h63
-rw-r--r--archivers/libarchive/files/libarchive/test/test_entry.c39
-rw-r--r--archivers/libarchive/files/libarchive/test/test_extattr_freebsd.c46
-rw-r--r--archivers/libarchive/files/libarchive/test/test_fuzz.c10
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_disk_directory_traversals.c299
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_extract.c2
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_mtree.c24
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_mtree_noprint.mtree.uu4
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar.c39
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5.c1196
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_arm.rar.uu916
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_blake2.rar.uu18
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_compressed.rar.uu13
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu9
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu10
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_fileattr.rar.uu13
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_hardlink.rar.uu6
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu9
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_leftshift1.rar.uu9
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_leftshift2.rar.uu6
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu345
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu345
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu345
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu345
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu345
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu345
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu345
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu208
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu299
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu299
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu299
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu76
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiple_files.rar.uu40
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu19
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu9
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_owner.rar.uu8
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu15
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_solid.rar.uu27
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_stored.rar.uu6
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu61
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_symlink.rar.uu8
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu7
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar5_win32.rar.uu69
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu10
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_raw.c27
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_raw.data.gz.uu4
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_tar_empty_with_gnulabel.c53
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu231
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_xar.c163
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip.c612
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_7075_utf8_paths.c102
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu20
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_bz2_hang.zip.uu5
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_bzip2.zipx.uu19
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_bzip2_multi.zipx.uu96
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_extra_padding.c93
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_extra_padding.zip.uu7
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma.zipx.uu19
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma_alone_leak.zipx.uu5
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma_multi.zipx.uu95
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8.zipx.uu17
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu4
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu4
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_multi.zipx.uu84
-rw-r--r--archivers/libarchive/files/libarchive/test/test_read_format_zip_xz_multi.zipx.uu125
-rw-r--r--archivers/libarchive/files/libarchive/test/test_sparse_basic.c83
-rw-r--r--archivers/libarchive/files/libarchive/test/test_write_disk_perms.c2
-rw-r--r--archivers/libarchive/files/libarchive/test/test_write_disk_symlink.c156
69 files changed, 8544 insertions, 93 deletions
diff --git a/archivers/libarchive/files/libarchive/test/CMakeLists.txt b/archivers/libarchive/files/libarchive/test/CMakeLists.txt
index 3bc8b775263..2f451d2a064 100644
--- a/archivers/libarchive/files/libarchive/test/CMakeLists.txt
+++ b/archivers/libarchive/files/libarchive/test/CMakeLists.txt
@@ -58,7 +58,6 @@ IF(ENABLE_TEST)
test_compat_lzma.c
test_compat_lzop.c
test_compat_mac.c
- test_compat_pax_libarchive_2x.c
test_compat_perl_archive_tar.c
test_compat_plexus_archiver_tar.c
test_compat_solaris_pax_sparse.c
@@ -150,10 +149,12 @@ IF(ENABLE_TEST)
test_read_format_rar_encryption_header.c
test_read_format_rar_encryption_partially.c
test_read_format_rar_invalid1.c
+ test_read_format_rar5.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_with_gnulabel.c
test_read_format_tar_empty_pax.c
test_read_format_tar_filename.c
test_read_format_tbz.c
@@ -165,10 +166,12 @@ IF(ENABLE_TEST)
test_read_format_warc.c
test_read_format_xar.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
diff --git a/archivers/libarchive/files/libarchive/test/list.h b/archivers/libarchive/files/libarchive/test/list.h
index 311a9834c35..0ff60e145e5 100644
--- a/archivers/libarchive/files/libarchive/test/list.h
+++ b/archivers/libarchive/files/libarchive/test/list.h
@@ -116,7 +116,6 @@ DEFINE_TEST(test_compat_lzip)
DEFINE_TEST(test_compat_lzma)
DEFINE_TEST(test_compat_lzop)
DEFINE_TEST(test_compat_mac)
-DEFINE_TEST(test_compat_pax_libarchive_2x)
DEFINE_TEST(test_compat_perl_archive_tar)
DEFINE_TEST(test_compat_plexus_archiver_tar)
DEFINE_TEST(test_compat_solaris_pax_sparse)
@@ -271,8 +270,48 @@ DEFINE_TEST(test_read_format_mtree_nomagic_v1_form)
DEFINE_TEST(test_read_format_mtree_nomagic_v2_form)
DEFINE_TEST(test_read_format_mtree_nomagic_v2_netbsd_form)
DEFINE_TEST(test_read_format_mtree_nonexistent_contents_file)
+DEFINE_TEST(test_read_format_mtree_noprint)
DEFINE_TEST(test_read_format_mtree_crash747)
DEFINE_TEST(test_read_format_pax_bz2)
+DEFINE_TEST(test_read_format_rar5_set_format)
+DEFINE_TEST(test_read_format_rar5_stored)
+DEFINE_TEST(test_read_format_rar5_compressed)
+DEFINE_TEST(test_read_format_rar5_multiple_files)
+DEFINE_TEST(test_read_format_rar5_multiple_files_solid)
+DEFINE_TEST(test_read_format_rar5_multiarchive_skip_all)
+DEFINE_TEST(test_read_format_rar5_multiarchive_skip_all_but_first)
+DEFINE_TEST(test_read_format_rar5_multiarchive_skip_all_but_second)
+DEFINE_TEST(test_read_format_rar5_blake2)
+DEFINE_TEST(test_read_format_rar5_arm_filter)
+DEFINE_TEST(test_read_format_rar5_stored_skip_all)
+DEFINE_TEST(test_read_format_rar5_stored_skip_in_part)
+DEFINE_TEST(test_read_format_rar5_stored_skip_all_but_first)
+DEFINE_TEST(test_read_format_rar5_stored_skip_all_in_part)
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_extr_all)
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_skip_all)
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_skip_all_but_first)
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_skip_all_but_scnd)
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_skip_all_but_third)
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_skip_all_but_last)
+DEFINE_TEST(test_read_format_rar5_solid_skip_all)
+DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_first)
+DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_second)
+DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_last)
+DEFINE_TEST(test_read_format_rar5_extract_win32)
+DEFINE_TEST(test_read_format_rar5_block_by_block)
+DEFINE_TEST(test_read_format_rar5_owner)
+DEFINE_TEST(test_read_format_rar5_symlink)
+DEFINE_TEST(test_read_format_rar5_hardlink)
+DEFINE_TEST(test_read_format_rar5_extra_field_version)
+DEFINE_TEST(test_read_format_rar5_readtables_overflow)
+DEFINE_TEST(test_read_format_rar5_leftshift1)
+DEFINE_TEST(test_read_format_rar5_leftshift2)
+DEFINE_TEST(test_read_format_rar5_truncated_huff)
+DEFINE_TEST(test_read_format_rar5_invalid_dict_reference)
+DEFINE_TEST(test_read_format_rar5_distance_overflow)
+DEFINE_TEST(test_read_format_rar5_nonempty_dir_stream)
+DEFINE_TEST(test_read_format_rar5_fileattr)
+DEFINE_TEST(test_read_format_rar_set_format)
DEFINE_TEST(test_read_format_rar_basic)
DEFINE_TEST(test_read_format_rar_subblock)
DEFINE_TEST(test_read_format_rar_noeof)
@@ -292,6 +331,7 @@ DEFINE_TEST(test_read_format_rar_multivolume_stored_file_skip)
DEFINE_TEST(test_read_format_rar_multivolume_seek_data)
DEFINE_TEST(test_read_format_rar_multivolume_seek_multiple_files)
DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files)
+DEFINE_TEST(test_read_format_rar_ppmd_use_after_free)
DEFINE_TEST(test_read_format_rar_encryption_data)
DEFINE_TEST(test_read_format_rar_encryption_header)
DEFINE_TEST(test_read_format_rar_encryption_partially)
@@ -301,6 +341,7 @@ DEFINE_TEST(test_read_format_tar)
DEFINE_TEST(test_read_format_tar_concatenated)
DEFINE_TEST(test_read_format_tar_empty_filename)
DEFINE_TEST(test_read_format_tar_empty_pax)
+DEFINE_TEST(test_read_format_tar_empty_with_gnulabel)
DEFINE_TEST(test_read_format_tar_filename)
DEFINE_TEST(test_read_format_tbz)
DEFINE_TEST(test_read_format_tgz)
@@ -310,11 +351,31 @@ DEFINE_TEST(test_read_format_tz)
DEFINE_TEST(test_read_format_ustar_filename)
DEFINE_TEST(test_read_format_warc)
DEFINE_TEST(test_read_format_xar)
+DEFINE_TEST(test_read_format_zip_utf8_paths)
DEFINE_TEST(test_read_format_zip)
+DEFINE_TEST(test_read_format_zip_ppmd_one_file)
+DEFINE_TEST(test_read_format_zip_ppmd_one_file_blockread)
+DEFINE_TEST(test_read_format_zip_ppmd_multi)
+DEFINE_TEST(test_read_format_zip_ppmd_multi_blockread)
+DEFINE_TEST(test_read_format_zip_lzma_one_file)
+DEFINE_TEST(test_read_format_zip_lzma_one_file_blockread)
+DEFINE_TEST(test_read_format_zip_lzma_multi)
+DEFINE_TEST(test_read_format_zip_lzma_multi_blockread)
+DEFINE_TEST(test_read_format_zip_bzip2_one_file)
+DEFINE_TEST(test_read_format_zip_bzip2_one_file_blockread)
+DEFINE_TEST(test_read_format_zip_bzip2_multi)
+DEFINE_TEST(test_read_format_zip_bzip2_multi_blockread)
+DEFINE_TEST(test_read_format_zip_xz_multi)
+DEFINE_TEST(test_read_format_zip_xz_multi_blockread)
+DEFINE_TEST(test_read_format_zip_ppmd8_crash_1)
+DEFINE_TEST(test_read_format_zip_bz2_hang_on_invalid)
+DEFINE_TEST(test_read_format_zip_ppmd8_crash_2)
+DEFINE_TEST(test_read_format_zip_lzma_alone_leak)
DEFINE_TEST(test_read_format_zip_comment_stored)
DEFINE_TEST(test_read_format_zip_encryption_data)
DEFINE_TEST(test_read_format_zip_encryption_header)
DEFINE_TEST(test_read_format_zip_encryption_partially)
+DEFINE_TEST(test_read_format_zip_extra_padding)
DEFINE_TEST(test_read_format_zip_filename_CP932_eucJP)
DEFINE_TEST(test_read_format_zip_filename_CP932_UTF8)
DEFINE_TEST(test_read_format_zip_filename_UTF8_eucJP)
diff --git a/archivers/libarchive/files/libarchive/test/test_entry.c b/archivers/libarchive/files/libarchive/test/test_entry.c
index 0ccc9e8fb35..0cf13e825af 100644
--- a/archivers/libarchive/files/libarchive/test/test_entry.c
+++ b/archivers/libarchive/files/libarchive/test/test_entry.c
@@ -27,6 +27,10 @@ __FBSDID("$FreeBSD: head/lib/libarchive/test/test_entry.c 201247 2009-12-30 05:5
#include <locale.h>
+#ifdef HAVE_LINUX_FS_H
+#include <linux/fs.h> /* for Linux file flags */
+#endif
+
#ifndef HAVE_WCSCPY
static wchar_t * wcscpy(wchar_t *s1, const wchar_t *s2)
{
@@ -336,17 +340,38 @@ DEFINE_TEST(test_entry)
/* Converting fflags bitmap to string is currently system-dependent. */
/* TODO: Make this system-independent. */
assertEqualString(archive_entry_fflags_text(e),
- "uappnd,nouchg,nodump,noopaque,uunlnk");
+ "uappnd,nouchg,nodump,noopaque,uunlnk,nosystem");
+#endif
+
+#if defined(__FreeBSD__) || defined(__APPLE__)
/* Test archive_entry_copy_fflags_text_w() */
- archive_entry_copy_fflags_text_w(e, L" ,nouappnd, nouchg, dump,uunlnk");
+ archive_entry_copy_fflags_text_w(e, L" ,nouappnd, nouchg, dump,hidden");
archive_entry_fflags(e, &set, &clear);
- assertEqualInt(16, set);
- assertEqualInt(7, clear);
+ assertEqualInt(UF_HIDDEN, set);
+ assertEqualInt(UF_NODUMP | UF_IMMUTABLE | UF_APPEND, clear);
/* Test archive_entry_copy_fflags_text() */
- archive_entry_copy_fflags_text(e, " ,nouappnd, nouchg, dump,uunlnk");
+ archive_entry_copy_fflags_text(e, " ,nouappnd, nouchg, dump,hidden");
+ archive_entry_fflags(e, &set, &clear);
+ assertEqualInt(UF_HIDDEN, set);
+ assertEqualInt(UF_NODUMP | UF_IMMUTABLE | UF_APPEND, clear);
+#elif defined(_WIN32) && !defined(CYGWIN)
+ archive_entry_copy_fflags_text_w(e, L"rdonly,hidden,nosystem");
+ archive_entry_fflags(e, &set, &clear);
+ assertEqualInt(FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN, set);
+ assertEqualInt(FILE_ATTRIBUTE_SYSTEM, clear);
+ archive_entry_copy_fflags_text(e, "rdonly,hidden,nosystem");
+ archive_entry_fflags(e, &set, &clear);
+ assertEqualInt(FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN, set);
+ assertEqualInt(FILE_ATTRIBUTE_SYSTEM, clear);
+#elif defined FS_IOC_GETFLAGS /* Linux */
+ archive_entry_copy_fflags_text_w(e, L"sappnd,schg,dump,noundel");
+ archive_entry_fflags(e, &set, &clear);
+ assertEqualInt(FS_APPEND_FL | FS_IMMUTABLE_FL, set);
+ assertEqualInt(FS_NODUMP_FL | FS_UNRM_FL, clear);
+ archive_entry_copy_fflags_text(e, "sappnd,schg,dump,noundel");
archive_entry_fflags(e, &set, &clear);
- assertEqualInt(16, set);
- assertEqualInt(7, clear);
+ assertEqualInt(FS_APPEND_FL | FS_IMMUTABLE_FL, set);
+ assertEqualInt(FS_NODUMP_FL | FS_UNRM_FL, clear);
#endif
/* See test_acl_basic.c for tests of ACL set/get consistency. */
diff --git a/archivers/libarchive/files/libarchive/test/test_extattr_freebsd.c b/archivers/libarchive/files/libarchive/test/test_extattr_freebsd.c
index 8ffe756d121..7cb30b56067 100644
--- a/archivers/libarchive/files/libarchive/test/test_extattr_freebsd.c
+++ b/archivers/libarchive/files/libarchive/test/test_extattr_freebsd.c
@@ -48,7 +48,6 @@ DEFINE_TEST(test_extattr_freebsd)
struct archive *a;
struct archive_entry *ae;
int n, fd;
- int extattr_privilege_bug = 0;
/*
* First, do a quick manual set/read of an extended attribute
@@ -72,24 +71,6 @@ DEFINE_TEST(test_extattr_freebsd)
assertEqualInt(4, n);
close(fd);
- /*
- * Repeat the above, but with file permissions set to 0000.
- * This should work (extattr_set_fd() should follow fd
- * permissions, not file permissions), but is known broken on
- * some versions of FreeBSD.
- */
- fd = open("pretest2", O_RDWR | O_CREAT, 00000);
- failure("Could not create test file?!");
- if (!assert(fd >= 0))
- return;
-
- n = extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, "testattr", "1234", 4);
- if (n != 4) {
- skipping("Restoring xattr to an unwritable file seems to be broken on this platform");
- extattr_privilege_bug = 1;
- }
- close(fd);
-
/* Create a write-to-disk object. */
assert(NULL != (a = archive_write_disk_new()));
archive_write_disk_set_options(a,
@@ -119,16 +100,12 @@ DEFINE_TEST(test_extattr_freebsd)
archive_entry_free(ae);
/* Close the archive. */
- if (extattr_privilege_bug)
- /* If the bug is here, write_close will return warning. */
- assertEqualIntA(a, ARCHIVE_WARN, archive_write_close(a));
- else
- assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
- assertEqualInt(ARCHIVE_OK, archive_write_free(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
/* Verify the data on disk. */
assertEqualInt(0, stat("test0", &st));
assertEqualInt(st.st_mtime, 123456);
+ assertEqualInt(st.st_mode & 0777, 0755);
/* Verify extattr */
n = extattr_get_file("test0", EXTATTR_NAMESPACE_USER,
"foo", buff, sizeof(buff));
@@ -140,17 +117,20 @@ DEFINE_TEST(test_extattr_freebsd)
/* Verify the data on disk. */
assertEqualInt(0, stat("test1", &st));
assertEqualInt(st.st_mtime, 12345678);
+ assertEqualInt(st.st_mode & 0777, 0);
+ /*
+ * If we are not root, we have to make test1 user readable
+ * or extattr_get_file() will fail
+ */
+ if (geteuid() != 0) {
+ chmod("test1", S_IRUSR);
+ }
/* Verify extattr */
n = extattr_get_file("test1", EXTATTR_NAMESPACE_USER,
"bar", buff, sizeof(buff));
- if (extattr_privilege_bug) {
- /* If we have the bug, the extattr won't have been written. */
- assertEqualInt(n, -1);
- } else {
- if (assertEqualInt(n, 6)) {
- buff[n] = '\0';
- assertEqualString(buff, "123456");
- }
+ if (assertEqualInt(n, 6)) {
+ buff[n] = '\0';
+ assertEqualString(buff, "123456");
}
/* Use libarchive APIs to read the file back into an entry and
diff --git a/archivers/libarchive/files/libarchive/test/test_fuzz.c b/archivers/libarchive/files/libarchive/test/test_fuzz.c
index 42351450b26..d02fd993f97 100644
--- a/archivers/libarchive/files/libarchive/test/test_fuzz.c
+++ b/archivers/libarchive/files/libarchive/test/test_fuzz.c
@@ -58,6 +58,14 @@ test_fuzz(const struct files *filesets)
size_t blk_size;
int64_t blk_offset;
int n;
+ const char *skip_fuzz_tests;
+
+ skip_fuzz_tests = getenv("SKIP_TEST_FUZZ");
+ if (skip_fuzz_tests != NULL) {
+ skipping("Skipping fuzz tests due to SKIP_TEST_FUZZ "
+ "environment variable");
+ return;
+ }
for (n = 0; filesets[n].names != NULL; ++n) {
const size_t buffsize = 30000000;
@@ -433,7 +441,7 @@ DEFINE_TEST(test_fuzz_tar)
{0, fileset9}, /* Exercise lzo decompressor. */
#endif
#if HAVE_ZSTD_H && HAVE_LIBZSTD
- {0, fileset10}, /* Excercise zstd decompressor. */
+ {0, fileset10}, /* Exercise zstd decompressor. */
#endif
{1, NULL}
};
diff --git a/archivers/libarchive/files/libarchive/test/test_read_disk_directory_traversals.c b/archivers/libarchive/files/libarchive/test/test_read_disk_directory_traversals.c
index 705b3d989cd..7dd19157d4d 100644
--- a/archivers/libarchive/files/libarchive/test/test_read_disk_directory_traversals.c
+++ b/archivers/libarchive/files/libarchive/test/test_read_disk_directory_traversals.c
@@ -40,7 +40,30 @@ atimeIsUpdated(void)
{
const char *fn = "fs_noatime";
struct stat st;
-
+#if defined(_WIN32) && !defined(CYGWIN)
+ char *buff = NULL;
+ char *ptr;
+ int r;
+
+ r = systemf("fsutil behavior query disableLastAccess > query_atime");
+ if (r == 0) {
+ buff = slurpfile(NULL, "query_atime");
+ if (buff != NULL) {
+ ptr = buff;
+ while(*ptr != '\0' && !isdigit(*ptr)) {
+ ptr++;
+ }
+ if (*ptr == '0') {
+ free(buff);
+ return(1);
+ } else if (*ptr == '1' || *ptr == '2') {
+ free(buff);
+ return(0);
+ }
+ free(buff);
+ }
+ }
+#endif
if (!assertMakeFile(fn, 0666, "a"))
return (0);
if (!assertUtimes(fn, 1, 0, 1, 0))
@@ -570,13 +593,13 @@ test_symlink_hybrid(void)
assertMakeDir("h", 0755);
assertChdir("h");
assertMakeDir("d1", 0755);
- assertMakeSymlink("ld1", "d1");
+ assertMakeSymlink("ld1", "d1", 1);
assertMakeFile("d1/file1", 0644, "d1/file1");
assertMakeFile("d1/file2", 0644, "d1/file2");
- assertMakeSymlink("d1/link1", "file1");
- assertMakeSymlink("d1/linkX", "fileX");
- assertMakeSymlink("link2", "d1/file2");
- assertMakeSymlink("linkY", "d1/fileY");
+ assertMakeSymlink("d1/link1", "file1", 0);
+ assertMakeSymlink("d1/linkX", "fileX", 0);
+ assertMakeSymlink("link2", "d1/file2", 0);
+ assertMakeSymlink("linkY", "d1/fileY", 0);
assertChdir("..");
assert((ae = archive_entry_new()) != NULL);
@@ -727,13 +750,13 @@ test_symlink_logical(void)
assertMakeDir("l", 0755);
assertChdir("l");
assertMakeDir("d1", 0755);
- assertMakeSymlink("ld1", "d1");
+ assertMakeSymlink("ld1", "d1", 1);
assertMakeFile("d1/file1", 0644, "d1/file1");
assertMakeFile("d1/file2", 0644, "d1/file2");
- assertMakeSymlink("d1/link1", "file1");
- assertMakeSymlink("d1/linkX", "fileX");
- assertMakeSymlink("link2", "d1/file2");
- assertMakeSymlink("linkY", "d1/fileY");
+ assertMakeSymlink("d1/link1", "file1", 0);
+ assertMakeSymlink("d1/linkX", "fileX", 0);
+ assertMakeSymlink("link2", "d1/file2", 0);
+ assertMakeSymlink("linkY", "d1/fileY", 0);
assertChdir("..");
/* Note: this test uses archive_read_next_header()
@@ -961,8 +984,8 @@ test_symlink_logical_loop(void)
assertMakeDir("d1/d2/d3", 0755);
assertMakeDir("d2", 0755);
assertMakeFile("d2/file1", 0644, "d2/file1");
- assertMakeSymlink("d1/d2/ld1", "../../d1");
- assertMakeSymlink("d1/d2/ld2", "../../d2");
+ assertMakeSymlink("d1/d2/ld1", "../../d1", 1);
+ assertMakeSymlink("d1/d2/ld2", "../../d2", 1);
assertChdir("..");
assert((ae = archive_entry_new()) != NULL);
@@ -1567,6 +1590,254 @@ test_nodump(void)
archive_entry_free(ae);
}
+static void
+test_parent(void)
+{
+ struct archive *a;
+ struct archive_entry *ae;
+ const void *p;
+ size_t size;
+ int64_t offset;
+ int file_count;
+ int match_count;
+ int r;
+
+ assertMakeDir("lock", 0311);
+ assertMakeDir("lock/dir1", 0755);
+ assertMakeFile("lock/dir1/f1", 0644, "0123456789");
+ assertMakeDir("lock/lock2", 0311);
+ assertMakeDir("lock/lock2/dir1", 0755);
+ assertMakeFile("lock/lock2/dir1/f1", 0644, "0123456789");
+
+ assert((ae = archive_entry_new()) != NULL);
+ assert((a = archive_read_disk_new()) != NULL);
+
+ /*
+ * Test1: Traverse lock/dir1 as .
+ */
+ assertChdir("lock/dir1");
+
+ failure("Directory traversals should work as well");
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_disk_open(a, "."));
+
+ file_count = 2;
+ match_count = 0;
+ while (file_count--) {
+ archive_entry_clear(ae);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header2(a, ae));
+ if (strcmp(archive_entry_pathname(ae), ".") == 0) {
+ assertEqualInt(archive_entry_filetype(ae), AE_IFDIR);
+ ++match_count;
+ } else if (strcmp(archive_entry_pathname(ae), "./f1") == 0) {
+ assertEqualInt(archive_entry_filetype(ae), AE_IFREG);
+ assertEqualInt(archive_entry_size(ae), 10);
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_data_block(a, &p, &size, &offset));
+ assertEqualInt((int)size, 10);
+ assertEqualInt((int)offset, 0);
+ assertEqualMem(p, "0123456789", 10);
+ assertEqualInt(ARCHIVE_EOF,
+ archive_read_data_block(a, &p, &size, &offset));
+ assertEqualInt((int)size, 0);
+ assertEqualInt((int)offset, 10);
+ ++match_count;
+ }
+ if (archive_read_disk_can_descend(a)) {
+ /* Descend into the current object */
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_disk_descend(a));
+ }
+ }
+ failure("Did not match expected filenames");
+ assertEqualInt(match_count, 2);
+ /*
+ * There is no entry. This will however fail if the directory traverse
+ * tries to ascend past the initial directory, since it lacks permission
+ * to do so.
+ */
+ failure("There should be no entry and no error");
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header2(a, ae));
+
+ /* Close the disk object. */
+ assertEqualInt(ARCHIVE_OK, archive_read_close(a));
+
+ assertChdir("../..");
+
+ /*
+ * Test2: Traverse lock/dir1 directly
+ */
+ failure("Directory traversals should work as well");
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_disk_open(a, "lock/dir1"));
+
+ file_count = 2;
+ match_count = 0;
+ while (file_count--) {
+ archive_entry_clear(ae);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header2(a, ae));
+ if (strcmp(archive_entry_pathname(ae), "lock/dir1") == 0) {
+ assertEqualInt(archive_entry_filetype(ae), AE_IFDIR);
+ ++match_count;
+ } else if (strcmp(archive_entry_pathname(ae), "lock/dir1/f1") == 0) {
+ assertEqualInt(archive_entry_filetype(ae), AE_IFREG);
+ assertEqualInt(archive_entry_size(ae), 10);
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_data_block(a, &p, &size, &offset));
+ assertEqualInt((int)size, 10);
+ assertEqualInt((int)offset, 0);
+ assertEqualMem(p, "0123456789", 10);
+ assertEqualInt(ARCHIVE_EOF,
+ archive_read_data_block(a, &p, &size, &offset));
+ assertEqualInt((int)size, 0);
+ assertEqualInt((int)offset, 10);
+ ++match_count;
+ }
+ if (archive_read_disk_can_descend(a)) {
+ /* Descend into the current object */
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_disk_descend(a));
+ }
+ }
+ failure("Did not match expected filenames");
+ assertEqualInt(match_count, 2);
+ /*
+ * There is no entry. This will however fail if the directory traverse
+ * tries to ascend past the initial directory, since it lacks permission
+ * to do so.
+ */
+ failure("There should be no entry and no error");
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header2(a, ae));
+
+ /* Close the disk object. */
+ assertEqualInt(ARCHIVE_OK, archive_read_close(a));
+
+ /*
+ * Test3: Traverse lock/dir1/.
+ */
+ failure("Directory traversals should work as well");
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_disk_open(a, "lock/dir1/."));
+
+ file_count = 2;
+ match_count = 0;
+ while (file_count--) {
+ archive_entry_clear(ae);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header2(a, ae));
+ if (strcmp(archive_entry_pathname(ae), "lock/dir1/.") == 0) {
+ assertEqualInt(archive_entry_filetype(ae), AE_IFDIR);
+ ++match_count;
+ } else if (strcmp(archive_entry_pathname(ae), "lock/dir1/./f1") == 0) {
+ assertEqualInt(archive_entry_filetype(ae), AE_IFREG);
+ assertEqualInt(archive_entry_size(ae), 10);
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_data_block(a, &p, &size, &offset));
+ assertEqualInt((int)size, 10);
+ assertEqualInt((int)offset, 0);
+ assertEqualMem(p, "0123456789", 10);
+ assertEqualInt(ARCHIVE_EOF,
+ archive_read_data_block(a, &p, &size, &offset));
+ assertEqualInt((int)size, 0);
+ assertEqualInt((int)offset, 10);
+ ++match_count;
+ }
+ if (archive_read_disk_can_descend(a)) {
+ /* Descend into the current object */
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_disk_descend(a));
+ }
+ }
+ failure("Did not match expected filenames");
+ assertEqualInt(match_count, 2);
+ /*
+ * There is no entry. This will however fail if the directory traverse
+ * tries to ascend past the initial directory, since it lacks permission
+ * to do so.
+ */
+ failure("There should be no entry and no error");
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header2(a, ae));
+
+ /* Close the disk object. */
+ assertEqualInt(ARCHIVE_OK, archive_read_close(a));
+
+ /*
+ * Test4: Traverse lock/lock2/dir1 from inside lock.
+ *
+ * This test is expected to fail on platforms with no O_EXEC or
+ * equivalent (e.g. O_PATH on Linux or O_SEARCH on SunOS), because
+ * the current traversal code can't handle the case where it can't
+ * obtain an open fd for the initial current directory. We need to
+ * check that condition here, because if O_EXEC _does_ exist, we don't
+ * want to overlook any failure.
+ */
+ assertChdir("lock");
+
+ failure("Directory traversals should work as well");
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_disk_open(a, "lock2/dir1"));
+
+ archive_entry_clear(ae);
+ r = archive_read_next_header2(a, ae);
+ if (r == ARCHIVE_FAILED) {
+#if defined(O_PATH) || defined(O_SEARCH) || defined(O_EXEC)
+ assertEqualIntA(a, ARCHIVE_OK, r);
+#endif
+ /* Close the disk object. */
+ archive_read_close(a);
+ } else {
+ file_count = 2;
+ match_count = 0;
+ while (file_count--) {
+ if (file_count == 0)
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_next_header2(a, ae));
+ if (strcmp(archive_entry_pathname(ae),
+ "lock2/dir1") == 0) {
+ assertEqualInt(archive_entry_filetype(ae),
+ AE_IFDIR);
+ ++match_count;
+ } else if (strcmp(archive_entry_pathname(ae),
+ "lock2/dir1/f1") == 0) {
+ assertEqualInt(archive_entry_filetype(ae),
+ AE_IFREG);
+ assertEqualInt(archive_entry_size(ae), 10);
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_data_block(a, &p, &size,
+ &offset));
+ assertEqualInt((int)size, 10);
+ assertEqualInt((int)offset, 0);
+ assertEqualMem(p, "0123456789", 10);
+ assertEqualInt(ARCHIVE_EOF,
+ archive_read_data_block(a, &p, &size,
+ &offset));
+ assertEqualInt((int)size, 0);
+ assertEqualInt((int)offset, 10);
+ ++match_count;
+ }
+ if (archive_read_disk_can_descend(a)) {
+ /* Descend into the current object */
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_disk_descend(a));
+ }
+ }
+ failure("Did not match expected filenames");
+ assertEqualInt(match_count, 2);
+ /*
+ * There is no entry. This will however fail if the directory
+ * traverse tries to ascend past the initial directory, since
+ * it lacks permission to do so.
+ */
+ failure("There should be no entry and no error");
+ assertEqualIntA(a, ARCHIVE_EOF,
+ archive_read_next_header2(a, ae));
+
+ /* Close the disk object. */
+ assertEqualInt(ARCHIVE_OK, archive_read_close(a));
+ }
+
+ assertChdir("..");
+
+ /* Destroy the disk object. */
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ archive_entry_free(ae);
+}
+
DEFINE_TEST(test_read_disk_directory_traversals)
{
/* Basic test. */
@@ -1583,4 +1854,6 @@ DEFINE_TEST(test_read_disk_directory_traversals)
test_callbacks();
/* Test nodump. */
test_nodump();
+ /* Test parent overshoot. */
+ test_parent();
}
diff --git a/archivers/libarchive/files/libarchive/test/test_read_extract.c b/archivers/libarchive/files/libarchive/test/test_read_extract.c
index c537e4f936c..cd06096eff6 100644
--- a/archivers/libarchive/files/libarchive/test/test_read_extract.c
+++ b/archivers/libarchive/files/libarchive/test/test_read_extract.c
@@ -161,7 +161,7 @@ DEFINE_TEST(test_read_extract)
assertIsDir("dir4/b", 0755);
assertIsDir("dir4/c", 0711);
if (canSymlink())
- assertIsSymlink("symlink", "file");
+ assertIsSymlink("symlink", "file", 0);
free(buff);
free(file_buff);
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_mtree.c b/archivers/libarchive/files/libarchive/test/test_read_format_mtree.c
index 8576d579f9c..df6f6cde0cd 100644
--- a/archivers/libarchive/files/libarchive/test/test_read_format_mtree.c
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_mtree.c
@@ -717,4 +717,28 @@ DEFINE_TEST(test_read_format_mtree_nonexistent_contents_file)
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
+/*
+ * Check mtree file with non-printable ascii characters
+ */
+DEFINE_TEST(test_read_format_mtree_noprint)
+{
+ const char reffile[] = "test_read_format_mtree_noprint.mtree";
+ struct archive_entry *ae;
+ struct archive *a;
+ extract_reference_file(reffile);
+
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_support_format_all(a));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_open_filename(a, reffile, 11));
+
+ assertEqualIntA(a, ARCHIVE_FATAL, archive_read_next_header(a, &ae));
+ assertEqualString("Can't parse line 3", archive_error_string(a));
+
+ assertEqualInt(ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_mtree_noprint.mtree.uu b/archivers/libarchive/files/libarchive/test/test_read_format_mtree_noprint.mtree.uu
new file mode 100644
index 00000000000..7965cdf29ae
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_mtree_noprint.mtree.uu
@@ -0,0 +1,4 @@
+begin 644 test_read_format_mtree_noprint.mtree
+K(VUT<F5E"F1I<E]O:R!T>7!E/61I<@ID:7)?P[;%H<2'('1Y<&4]9&ER"@``
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar.c b/archivers/libarchive/files/libarchive/test/test_read_format_rar.c
index 6392d8f50ff..f08b06bc69a 100644
--- a/archivers/libarchive/files/libarchive/test/test_read_format_rar.c
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar.c
@@ -28,6 +28,22 @@
#include <locale.h>
+DEFINE_TEST(test_read_format_rar_set_format)
+{
+ struct archive *a;
+ struct archive_entry *ae;
+ const char reffile[] = "test_read_format_rar.rar";
+
+ extract_reference_file(reffile);
+ assert((a = archive_read_new()) != NULL);
+ assertA(0 == archive_read_support_filter_all(a));
+ assertA(0 == archive_read_set_format(a, ARCHIVE_FORMAT_RAR));
+ assertA(0 == archive_read_open_filename(a, reffile, 10240));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
+
DEFINE_TEST(test_read_format_rar_basic)
{
char buff[64];
@@ -3740,3 +3756,26 @@ DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files)
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
}
+
+DEFINE_TEST(test_read_format_rar_ppmd_use_after_free)
+{
+ uint8_t buf[16];
+ const char* reffile = "test_read_format_rar_ppmd_use_after_free.rar";
+
+ struct archive_entry *ae;
+ struct archive *a;
+
+ extract_reference_file(reffile);
+ assert((a = archive_read_new()) != NULL);
+ assertA(0 == archive_read_support_filter_all(a));
+ assertA(0 == archive_read_support_format_all(a));
+ assertA(0 == archive_read_open_filename(a, reffile, 10240));
+
+ assertA(ARCHIVE_OK == archive_read_next_header(a, &ae));
+ assertA(archive_read_data(a, buf, sizeof(buf)) <= 0);
+ assertA(ARCHIVE_OK == archive_read_next_header(a, &ae));
+ assertA(archive_read_data(a, buf, sizeof(buf)) <= 0);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c b/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c
new file mode 100644
index 00000000000..1408f37c49d
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c
@@ -0,0 +1,1196 @@
+/*-
+ * Copyright (c) 2018 Grzegorz Antoniak
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "test.h"
+
+/* Some tests will want to calculate some CRC32's, and this header can
+ * help. */
+#define __LIBARCHIVE_BUILD
+#include <archive_crc32.h>
+#include <archive_endian.h>
+
+#define PROLOGUE(reffile) \
+ struct archive_entry *ae; \
+ struct archive *a; \
+ \
+ (void) a; /* Make the compiler happy if we won't use this variables */ \
+ (void) ae; /* in the test cases. */ \
+ \
+ extract_reference_file(reffile); \
+ assert((a = archive_read_new()) != NULL); \
+ assertA(0 == archive_read_support_filter_all(a)); \
+ assertA(0 == archive_read_support_format_all(a)); \
+ assertA(0 == archive_read_open_filename(a, reffile, 10240))
+
+#define PROLOGUE_MULTI(reffile) \
+ struct archive_entry *ae; \
+ struct archive *a; \
+ \
+ (void) a; \
+ (void) ae; \
+ \
+ extract_reference_files(reffile); \
+ assert((a = archive_read_new()) != NULL); \
+ assertA(0 == archive_read_support_filter_all(a)); \
+ assertA(0 == archive_read_support_format_all(a)); \
+ assertA(0 == archive_read_open_filenames(a, reffile, 10240))
+
+
+#define EPILOGUE() \
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); \
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a))
+
+static
+int verify_data(const uint8_t* data_ptr, int magic, int size) {
+ int i = 0;
+
+ /* This is how the test data inside test files was generated;
+ * we are re-generating it here and we check if our re-generated
+ * test data is the same as in the test file. If this test is
+ * failing it's either because there's a bug in the test case,
+ * or the unpacked data is corrupted. */
+
+ for(i = 0; i < size / 4; ++i) {
+ const int k = i + 1;
+ const signed int* lptr = (const signed int*) &data_ptr[i * 4];
+ signed int val = k * k - 3 * k + (1 + magic);
+
+ if(val < 0)
+ val = 0;
+
+ /* *lptr is a value inside unpacked test file, val is the
+ * value that should be in the unpacked test file. */
+
+ if(archive_le32dec(lptr) != (uint32_t) val)
+ return 0;
+ }
+
+ return 1;
+}
+
+static
+int extract_one(struct archive* a, struct archive_entry* ae, uint32_t crc) {
+ la_ssize_t fsize, bytes_read;
+ uint8_t* buf;
+ int ret = 1;
+ uint32_t computed_crc;
+
+ fsize = (la_ssize_t) archive_entry_size(ae);
+ buf = malloc(fsize);
+ if(buf == NULL)
+ return 1;
+
+ bytes_read = archive_read_data(a, buf, fsize);
+ if(bytes_read != fsize) {
+ assertEqualInt(bytes_read, fsize);
+ goto fn_exit;
+ }
+
+ computed_crc = crc32(0, buf, fsize);
+ assertEqualInt(computed_crc, crc);
+ ret = 0;
+
+fn_exit:
+ free(buf);
+ return ret;
+}
+
+DEFINE_TEST(test_read_format_rar5_set_format)
+{
+ struct archive *a;
+ struct archive_entry *ae;
+ const char reffile[] = "test_read_format_rar5_stored.rar";
+
+ extract_reference_file(reffile);
+ assert((a = archive_read_new()) != NULL);
+ assertA(0 == archive_read_support_filter_all(a));
+ assertA(0 == archive_read_set_format(a, ARCHIVE_FORMAT_RAR_V5));
+ assertA(0 == archive_read_open_filename(a, reffile, 10240));
+ assertA(0 == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_stored)
+{
+ const char helloworld_txt[] = "hello libarchive test suite!\n";
+ la_ssize_t file_size = sizeof(helloworld_txt) - 1;
+ char buff[64];
+
+ PROLOGUE("test_read_format_rar5_stored.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("helloworld.txt", archive_entry_pathname(ae));
+ assertA((int) archive_entry_mtime(ae) > 0);
+ assertA((int) archive_entry_ctime(ae) == 0);
+ assertA((int) archive_entry_atime(ae) == 0);
+ assertEqualInt(file_size, archive_entry_size(ae));
+ assertEqualInt(33188, archive_entry_mode(ae));
+ assertA(file_size == archive_read_data(a, buff, file_size));
+ assertEqualMem(buff, helloworld_txt, file_size);
+ assertEqualInt(archive_entry_is_encrypted(ae), 0);
+
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_compressed)
+{
+ const int DATA_SIZE = 1200;
+ uint8_t buff[1200];
+
+ PROLOGUE("test_read_format_rar5_compressed.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA((int) archive_entry_mtime(ae) > 0);
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ verify_data(buff, 0, DATA_SIZE);
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_multiple_files)
+{
+ const int DATA_SIZE = 4096;
+ uint8_t buff[4096];
+
+ PROLOGUE("test_read_format_rar5_multiple_files.rar");
+
+ /* There should be 4 files inside this test file. Check for their
+ * existence, and also check the contents of those test files. */
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+ assertA(verify_data(buff, 1, DATA_SIZE));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+ assertA(verify_data(buff, 2, DATA_SIZE));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+ assertA(verify_data(buff, 3, DATA_SIZE));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+ assertA(verify_data(buff, 4, DATA_SIZE));
+
+ /* There should be no more files in this archive. */
+
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+/* This test is really the same as the test above, but it deals with a solid
+ * archive instead of a regular archive. The test solid archive contains the
+ * same set of files as regular test archive, but it's size is 2x smaller,
+ * because solid archives reuse the window buffer from previous compressed
+ * files, so it's able to compress lots of small files more effectively. */
+
+DEFINE_TEST(test_read_format_rar5_multiple_files_solid)
+{
+ const int DATA_SIZE = 4096;
+ uint8_t buff[4096];
+
+ PROLOGUE("test_read_format_rar5_multiple_files_solid.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+ assertA(verify_data(buff, 1, DATA_SIZE));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+ assertA(verify_data(buff, 2, DATA_SIZE));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+ assertA(verify_data(buff, 3, DATA_SIZE));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+ assertA(verify_data(buff, 4, DATA_SIZE));
+
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_multiarchive_skip_all)
+{
+ const char* reffiles[] = {
+ "test_read_format_rar5_multiarchive.part01.rar",
+ "test_read_format_rar5_multiarchive.part02.rar",
+ "test_read_format_rar5_multiarchive.part03.rar",
+ "test_read_format_rar5_multiarchive.part04.rar",
+ "test_read_format_rar5_multiarchive.part05.rar",
+ "test_read_format_rar5_multiarchive.part06.rar",
+ "test_read_format_rar5_multiarchive.part07.rar",
+ "test_read_format_rar5_multiarchive.part08.rar",
+ NULL
+ };
+
+ PROLOGUE_MULTI(reffiles);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("home/antek/temp/build/unrar5/libarchive/bin/bsdcat_test", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("home/antek/temp/build/unrar5/libarchive/bin/bsdtar_test", archive_entry_pathname(ae));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_multiarchive_skip_all_but_first)
+{
+ const char* reffiles[] = {
+ "test_read_format_rar5_multiarchive.part01.rar",
+ "test_read_format_rar5_multiarchive.part02.rar",
+ "test_read_format_rar5_multiarchive.part03.rar",
+ "test_read_format_rar5_multiarchive.part04.rar",
+ "test_read_format_rar5_multiarchive.part05.rar",
+ "test_read_format_rar5_multiarchive.part06.rar",
+ "test_read_format_rar5_multiarchive.part07.rar",
+ "test_read_format_rar5_multiarchive.part08.rar",
+ NULL
+ };
+
+ PROLOGUE_MULTI(reffiles);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertA(0 == extract_one(a, ae, 0x35277473));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_multiarchive_skip_all_but_second)
+{
+ const char* reffiles[] = {
+ "test_read_format_rar5_multiarchive.part01.rar",
+ "test_read_format_rar5_multiarchive.part02.rar",
+ "test_read_format_rar5_multiarchive.part03.rar",
+ "test_read_format_rar5_multiarchive.part04.rar",
+ "test_read_format_rar5_multiarchive.part05.rar",
+ "test_read_format_rar5_multiarchive.part06.rar",
+ "test_read_format_rar5_multiarchive.part07.rar",
+ "test_read_format_rar5_multiarchive.part08.rar",
+ NULL
+ };
+
+ PROLOGUE_MULTI(reffiles);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertA(0 == extract_one(a, ae, 0xE59665F8));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_blake2)
+{
+ const la_ssize_t proper_size = 814;
+ uint8_t buf[814];
+
+ PROLOGUE("test_read_format_rar5_blake2.rar");
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualInt(proper_size, archive_entry_size(ae));
+
+ /* Should blake2 calculation fail, we'll get a failure return
+ * value from archive_read_data(). */
+
+ assertA(proper_size == archive_read_data(a, buf, proper_size));
+
+ /* To be extra pedantic, let's also check crc32 of the poem. */
+ assertEqualInt(crc32(0, buf, proper_size), 0x7E5EC49E);
+
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_arm_filter)
+{
+ /* This test unpacks a file that uses an ARM filter. The DELTA
+ * and X86 filters are tested implicitly in the "multiarchive_skip"
+ * test. */
+
+ const la_ssize_t proper_size = 90808;
+ uint8_t buf[90808];
+
+ PROLOGUE("test_read_format_rar5_arm.rar");
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualInt(proper_size, archive_entry_size(ae));
+ assertA(proper_size == archive_read_data(a, buf, proper_size));
+
+ /* Yes, RARv5 unpacker itself should calculate the CRC, but in case
+ * the DONT_FAIL_ON_CRC_ERROR define option is enabled during compilation,
+ * let's still fail the test if the unpacked data is wrong. */
+ assertEqualInt(crc32(0, buf, proper_size), 0x886F91EB);
+
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_stored_skip_all)
+{
+ const char* fname = "test_read_format_rar5_stored_manyfiles.rar";
+
+ PROLOGUE(fname);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("make_uue.tcl", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("cebula.txt", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_stored_skip_in_part)
+{
+ const char* fname = "test_read_format_rar5_stored_manyfiles.rar";
+ char buf[6];
+
+ /* Skip first, extract in part rest. */
+
+ PROLOGUE(fname);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("make_uue.tcl", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("cebula.txt", archive_entry_pathname(ae));
+ assertA(6 == archive_read_data(a, buf, 6));
+ assertEqualInt(0, memcmp(buf, "Cebula", 6));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(4 == archive_read_data(a, buf, 4));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_stored_skip_all_but_first)
+{
+ const char* fname = "test_read_format_rar5_stored_manyfiles.rar";
+ char buf[405];
+
+ /* Extract first, skip rest. */
+
+ PROLOGUE(fname);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("make_uue.tcl", archive_entry_pathname(ae));
+ assertA(405 == archive_read_data(a, buf, sizeof(buf)));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("cebula.txt", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_stored_skip_all_in_part)
+{
+ const char* fname = "test_read_format_rar5_stored_manyfiles.rar";
+ char buf[4];
+
+ /* Extract in part all */
+
+ PROLOGUE(fname);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("make_uue.tcl", archive_entry_pathname(ae));
+ assertA(4 == archive_read_data(a, buf, 4));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("cebula.txt", archive_entry_pathname(ae));
+ assertA(4 == archive_read_data(a, buf, 4));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(4 == archive_read_data(a, buf, 4));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_extr_all)
+{
+ const char* reffiles[] = {
+ "test_read_format_rar5_multiarchive_solid.part01.rar",
+ "test_read_format_rar5_multiarchive_solid.part02.rar",
+ "test_read_format_rar5_multiarchive_solid.part03.rar",
+ "test_read_format_rar5_multiarchive_solid.part04.rar",
+ NULL
+ };
+
+ PROLOGUE_MULTI(reffiles);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("cebula.txt", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x7E5EC49E));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x7cca70cd));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x7e13b2c6));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0xf166afcb));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x9fb123d9));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x10c43ed4));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test5.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0xb9d155f2));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test6.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x36a448ff));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("elf-Linux-ARMv7-ls", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x886F91EB));
+
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_skip_all)
+{
+ const char* reffiles[] = {
+ "test_read_format_rar5_multiarchive_solid.part01.rar",
+ "test_read_format_rar5_multiarchive_solid.part02.rar",
+ "test_read_format_rar5_multiarchive_solid.part03.rar",
+ "test_read_format_rar5_multiarchive_solid.part04.rar",
+ NULL
+ };
+
+ PROLOGUE_MULTI(reffiles);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("cebula.txt", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test5.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test6.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("elf-Linux-ARMv7-ls", archive_entry_pathname(ae));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_skip_all_but_first)
+{
+ const char* reffiles[] = {
+ "test_read_format_rar5_multiarchive_solid.part01.rar",
+ "test_read_format_rar5_multiarchive_solid.part02.rar",
+ "test_read_format_rar5_multiarchive_solid.part03.rar",
+ "test_read_format_rar5_multiarchive_solid.part04.rar",
+ NULL
+ };
+
+ PROLOGUE_MULTI(reffiles);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("cebula.txt", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x7E5EC49E));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test5.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test6.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("elf-Linux-ARMv7-ls", archive_entry_pathname(ae));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+/* "skip_all_but_scnd" -> am I hitting the test name limit here after
+ * expansion of "scnd" to "second"? */
+
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_skip_all_but_scnd)
+{
+ const char* reffiles[] = {
+ "test_read_format_rar5_multiarchive_solid.part01.rar",
+ "test_read_format_rar5_multiarchive_solid.part02.rar",
+ "test_read_format_rar5_multiarchive_solid.part03.rar",
+ "test_read_format_rar5_multiarchive_solid.part04.rar",
+ NULL
+ };
+
+ PROLOGUE_MULTI(reffiles);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("cebula.txt", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x7CCA70CD));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test5.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test6.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("elf-Linux-ARMv7-ls", archive_entry_pathname(ae));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_skip_all_but_third)
+{
+ const char* reffiles[] = {
+ "test_read_format_rar5_multiarchive_solid.part01.rar",
+ "test_read_format_rar5_multiarchive_solid.part02.rar",
+ "test_read_format_rar5_multiarchive_solid.part03.rar",
+ "test_read_format_rar5_multiarchive_solid.part04.rar",
+ NULL
+ };
+
+ PROLOGUE_MULTI(reffiles);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("cebula.txt", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x7E13B2C6));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test5.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test6.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("elf-Linux-ARMv7-ls", archive_entry_pathname(ae));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_multiarchive_solid_skip_all_but_last)
+{
+ const char* reffiles[] = {
+ "test_read_format_rar5_multiarchive_solid.part01.rar",
+ "test_read_format_rar5_multiarchive_solid.part02.rar",
+ "test_read_format_rar5_multiarchive_solid.part03.rar",
+ "test_read_format_rar5_multiarchive_solid.part04.rar",
+ NULL
+ };
+
+ PROLOGUE_MULTI(reffiles);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("cebula.txt", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test5.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test6.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("elf-Linux-ARMv7-ls", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x886F91EB));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_solid_skip_all)
+{
+ const char* reffile = "test_read_format_rar5_solid.rar";
+
+ /* Skip all */
+
+ PROLOGUE(reffile);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test5.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test6.bin", archive_entry_pathname(ae));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_first)
+{
+ const char* reffile = "test_read_format_rar5_solid.rar";
+
+ /* Extract first, skip rest */
+
+ PROLOGUE(reffile);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x7CCA70CD));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test5.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test6.bin", archive_entry_pathname(ae));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_second)
+{
+ const char* reffile = "test_read_format_rar5_solid.rar";
+
+ /* Skip first, extract second, skip rest */
+
+ PROLOGUE(reffile);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x7E13B2C6));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test5.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test6.bin", archive_entry_pathname(ae));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_last)
+{
+ const char* reffile = "test_read_format_rar5_solid.rar";
+
+ /* Skip all but last, extract last */
+
+ PROLOGUE(reffile);
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test5.bin", archive_entry_pathname(ae));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test6.bin", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0x36A448FF));
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_extract_win32)
+{
+ PROLOGUE("test_read_format_rar5_win32.rar");
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("testdir", archive_entry_pathname(ae));
+ assertEqualInt(archive_entry_mode(ae), AE_IFDIR | 0755);
+ assertA(0 == extract_one(a, ae, 0));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
+ assertA(0 == extract_one(a, ae, 0x7CCA70CD));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test1.bin", archive_entry_pathname(ae));
+ assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
+ assertA(0 == extract_one(a, ae, 0x7E13B2C6));
+ assertA(0 == archive_read_next_header(a, &ae));
+ /* Read only file */
+ assertEqualString("test2.bin", archive_entry_pathname(ae));
+ assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0444);
+ assertA(0 == extract_one(a, ae, 0xF166AFCB));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test3.bin", archive_entry_pathname(ae));
+ assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
+ assertA(0 == extract_one(a, ae, 0x9FB123D9));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test4.bin", archive_entry_pathname(ae));
+ assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
+ assertA(0 == extract_one(a, ae, 0x10C43ED4));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test5.bin", archive_entry_pathname(ae));
+ assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
+ assertA(0 == extract_one(a, ae, 0xB9D155F2));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test6.bin", archive_entry_pathname(ae));
+ assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
+ assertA(0 == extract_one(a, ae, 0x36A448FF));
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_block_by_block)
+{
+ /* This test uses strange buffer sizes intentionally. */
+
+ struct archive_entry *ae;
+ struct archive *a;
+ uint8_t buf[173];
+ int bytes_read;
+ uint32_t computed_crc = 0;
+
+ extract_reference_file("test_read_format_rar5_compressed.rar");
+ assert((a = archive_read_new()) != NULL);
+ assertA(0 == archive_read_support_filter_all(a));
+ assertA(0 == archive_read_support_format_all(a));
+ assertA(0 == archive_read_open_filename(a, "test_read_format_rar5_compressed.rar", 130));
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("test.bin", archive_entry_pathname(ae));
+ assertEqualInt(1200, archive_entry_size(ae));
+
+ /* File size is 1200 bytes, we're reading it using a buffer of 173 bytes.
+ * Libarchive is configured to use a buffer of 130 bytes. */
+
+ while(1) {
+ /* archive_read_data should return one of:
+ * a) 0, if there is no more data to be read,
+ * b) negative value, if there was an error,
+ * c) positive value, meaning how many bytes were read.
+ */
+
+ bytes_read = archive_read_data(a, buf, sizeof(buf));
+ assertA(bytes_read >= 0);
+ if(bytes_read <= 0)
+ break;
+
+ computed_crc = crc32(computed_crc, buf, bytes_read);
+ }
+
+ assertEqualInt(computed_crc, 0x7CCA70CD);
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_owner)
+{
+ const int DATA_SIZE = 5;
+ uint8_t buff[5];
+
+ PROLOGUE("test_read_format_rar5_owner.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("root.txt", archive_entry_pathname(ae));
+ assertEqualString("root", archive_entry_uname(ae));
+ assertEqualString("wheel", archive_entry_gname(ae));
+ assertA((int) archive_entry_mtime(ae) > 0);
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("nobody.txt", archive_entry_pathname(ae));
+ assertEqualString("nobody", archive_entry_uname(ae));
+ assertEqualString("nogroup", archive_entry_gname(ae));
+ assertA((int) archive_entry_mtime(ae) > 0);
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("numeric.txt", archive_entry_pathname(ae));
+ assertEqualInt(9999, archive_entry_uid(ae));
+ assertEqualInt(8888, archive_entry_gid(ae));
+ assertA((int) archive_entry_mtime(ae) > 0);
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_symlink)
+{
+ const int DATA_SIZE = 5;
+ uint8_t buff[5];
+
+ PROLOGUE("test_read_format_rar5_symlink.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("file.txt", archive_entry_pathname(ae));
+ assertEqualInt(AE_IFREG, archive_entry_filetype(ae));
+ assertA((int) archive_entry_mtime(ae) > 0);
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("symlink.txt", archive_entry_pathname(ae));
+ assertEqualInt(AE_IFLNK, archive_entry_filetype(ae));
+ assertEqualString("file.txt", archive_entry_symlink(ae));
+ assertEqualInt(AE_SYMLINK_TYPE_FILE, archive_entry_symlink_type(ae));
+ assertA(0 == archive_read_data(a, NULL, archive_entry_size(ae)));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("dirlink", archive_entry_pathname(ae));
+ assertEqualInt(AE_IFLNK, archive_entry_filetype(ae));
+ assertEqualString("dir", archive_entry_symlink(ae));
+ assertEqualInt(AE_SYMLINK_TYPE_DIRECTORY, archive_entry_symlink_type(ae));
+ assertA(0 == archive_read_data(a, NULL, archive_entry_size(ae)));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("dir", archive_entry_pathname(ae));
+ assertEqualInt(AE_IFDIR, archive_entry_filetype(ae));
+ assertA(0 == archive_read_data(a, NULL, archive_entry_size(ae)));
+
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_hardlink)
+{
+ const int DATA_SIZE = 5;
+ uint8_t buff[5];
+
+ PROLOGUE("test_read_format_rar5_hardlink.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("file.txt", archive_entry_pathname(ae));
+ assertEqualInt(AE_IFREG, archive_entry_filetype(ae));
+ assertA((int) archive_entry_mtime(ae) > 0);
+ assertEqualInt(DATA_SIZE, archive_entry_size(ae));
+ assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("hardlink.txt", archive_entry_pathname(ae));
+ assertEqualInt(AE_IFREG, archive_entry_filetype(ae));
+ assertEqualString("file.txt", archive_entry_hardlink(ae));
+ assertA(0 == archive_read_data(a, NULL, archive_entry_size(ae)));
+
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_extra_field_version)
+{
+ PROLOGUE("test_read_format_rar5_extra_field_version.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("bin/2to3;1", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0xF24181B7));
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("bin/2to3", archive_entry_pathname(ae));
+ assertA(0 == extract_one(a, ae, 0xF24181B7));
+
+ assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_readtables_overflow)
+{
+ uint8_t buf[16];
+
+ PROLOGUE("test_read_format_rar5_readtables_overflow.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ /* This archive is invalid. However, processing it shouldn't cause any
+ * buffer overflow errors during reading rar5 tables. */
+ assertA(archive_read_data(a, buf, sizeof(buf)) <= 0);
+
+ /* This test only cares about not returning success here. */
+ assertA(ARCHIVE_OK != archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_leftshift1)
+{
+ uint8_t buf[16];
+
+ PROLOGUE("test_read_format_rar5_leftshift1.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ /* This archive is invalid. However, processing it shouldn't cause any
+ * errors related to undefined operations when using -fsanitize. */
+ assertA(archive_read_data(a, buf, sizeof(buf)) <= 0);
+
+ /* This test only cares about not returning success here. */
+ assertA(ARCHIVE_OK != archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_leftshift2)
+{
+ uint8_t buf[16];
+
+ PROLOGUE("test_read_format_rar5_leftshift2.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+
+ /* This archive is invalid. However, processing it shouldn't cause any
+ * errors related to undefined operations when using -fsanitize. */
+ assertA(archive_read_data(a, buf, sizeof(buf)) <= 0);
+
+ /* This test only cares about not returning success here. */
+ assertA(ARCHIVE_OK != archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_truncated_huff)
+{
+ uint8_t buf[16];
+
+ PROLOGUE("test_read_format_rar5_truncated_huff.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+
+ /* This archive is invalid. However, processing it shouldn't cause any
+ * errors related to undefined operations when using -fsanitize. */
+ assertA(archive_read_data(a, buf, sizeof(buf)) <= 0);
+
+ /* This test only cares about not returning success here. */
+ assertA(ARCHIVE_OK != archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_invalid_dict_reference)
+{
+ uint8_t buf[16];
+
+ PROLOGUE("test_read_format_rar5_invalid_dict_reference.rar");
+
+ /* This test should fail on parsing the header. */
+ assertA(archive_read_next_header(a, &ae) != ARCHIVE_OK);
+
+ /* This archive is invalid. However, processing it shouldn't cause any
+ * errors related to buffer underflow when using -fsanitize. */
+ assertA(archive_read_data(a, buf, sizeof(buf)) <= 0);
+
+ /* This test only cares about not returning success here. */
+ assertA(ARCHIVE_OK != archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_distance_overflow)
+{
+ uint8_t buf[16];
+
+ PROLOGUE("test_read_format_rar5_distance_overflow.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+
+ /* This archive is invalid. However, processing it shouldn't cause any
+ * errors related to variable overflows when using -fsanitize. */
+ assertA(archive_read_data(a, buf, sizeof(buf)) <= 0);
+
+ /* This test only cares about not returning success here. */
+ assertA(ARCHIVE_OK != archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_nonempty_dir_stream)
+{
+ uint8_t buf[16];
+
+ PROLOGUE("test_read_format_rar5_nonempty_dir_stream.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+
+ /* This archive is invalid. However, processing it shouldn't cause any
+ * errors related to buffer overflows when using -fsanitize. */
+ assertA(archive_read_data(a, buf, sizeof(buf)) <= 0);
+
+ /* This test only cares about not returning success here. */
+ assertA(ARCHIVE_OK != archive_read_next_header(a, &ae));
+
+ EPILOGUE();
+}
+
+DEFINE_TEST(test_read_format_rar5_fileattr)
+{
+ unsigned long set, clear, flag;
+
+ flag = 0;
+
+ PROLOGUE("test_read_format_rar5_fileattr.rar");
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualInt(archive_entry_mode(ae), 0444 | AE_IFREG);
+ assertEqualString("readonly.txt", archive_entry_pathname(ae));
+ assertEqualString("rdonly", archive_entry_fflags_text(ae));
+ archive_entry_fflags(ae, &set, &clear);
+#if defined(__FreeBSD__)
+ flag = UF_READONLY;
+#elif defined(_WIN32) && !defined(CYGWIN)
+ flag = FILE_ATTRIBUTE_READONLY;
+#endif
+ assertEqualInt(flag, set & flag);
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualInt(archive_entry_mode(ae), 0644 | AE_IFREG);
+ assertEqualString("hidden.txt", archive_entry_pathname(ae));
+ assertEqualString("hidden", archive_entry_fflags_text(ae));
+ archive_entry_fflags(ae, &set, &clear);
+#if defined(__FreeBSD__)
+ flag = UF_HIDDEN;
+#elif defined(_WIN32) && !defined(CYGWIN)
+ flag = FILE_ATTRIBUTE_HIDDEN;
+#endif
+ assertEqualInt(flag, set & flag);
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualInt(archive_entry_mode(ae), 0644 | AE_IFREG);
+ assertEqualString("system.txt", archive_entry_pathname(ae));
+ assertEqualString("system", archive_entry_fflags_text(ae));
+ archive_entry_fflags(ae, &set, &clear);
+#if defined(__FreeBSD__)
+ flag = UF_SYSTEM;;
+#elif defined(_WIN32) && !defined(CYGWIN)
+ flag = FILE_ATTRIBUTE_SYSTEM;
+#endif
+ assertEqualInt(flag, set & flag);
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualInt(archive_entry_mode(ae), 0444 | AE_IFREG);
+ assertEqualString("ro_hidden.txt", archive_entry_pathname(ae));
+ assertEqualString("rdonly,hidden", archive_entry_fflags_text(ae));
+ archive_entry_fflags(ae, &set, &clear);
+#if defined(__FreeBSD__)
+ flag = UF_READONLY | UF_HIDDEN;
+#elif defined(_WIN32) && !defined(CYGWIN)
+ flag = FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN;
+#endif
+ assertEqualInt(flag, set & flag);
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualInt(archive_entry_mode(ae), 0555 | AE_IFDIR);
+ assertEqualString("dir_readonly", archive_entry_pathname(ae));
+ assertEqualString("rdonly", archive_entry_fflags_text(ae));
+ archive_entry_fflags(ae, &set, &clear);
+#if defined(__FreeBSD__)
+ flag = UF_READONLY;
+#elif defined(_WIN32) && !defined(CYGWIN)
+ flag = FILE_ATTRIBUTE_READONLY;
+#endif
+ assertEqualInt(flag, set & flag);
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualInt(archive_entry_mode(ae), 0755 | AE_IFDIR);
+ assertEqualString("dir_hidden", archive_entry_pathname(ae));
+ assertEqualString("hidden", archive_entry_fflags_text(ae));
+ archive_entry_fflags(ae, &set, &clear);
+#if defined(__FreeBSD__)
+ flag = UF_HIDDEN;
+#elif defined(_WIN32) && !defined(CYGWIN)
+ flag = FILE_ATTRIBUTE_HIDDEN;
+#endif
+ assertEqualInt(flag, set & flag);
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualInt(archive_entry_mode(ae), 0755 | AE_IFDIR);
+ assertEqualString("dir_system", archive_entry_pathname(ae));
+ assertEqualString("system", archive_entry_fflags_text(ae));
+ archive_entry_fflags(ae, &set, &clear);
+#if defined(__FreeBSD__)
+ flag = UF_SYSTEM;
+#elif defined(_WIN32) && !defined(CYGWIN)
+ flag = FILE_ATTRIBUTE_SYSTEM;
+#endif
+ assertEqualInt(flag, set & flag);
+
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualInt(archive_entry_mode(ae), 0555 | AE_IFDIR);
+ assertEqualString("dir_rohidden", archive_entry_pathname(ae));
+ assertEqualString("rdonly,hidden", archive_entry_fflags_text(ae));
+ archive_entry_fflags(ae, &set, &clear);
+#if defined(__FreeBSD__)
+ flag = UF_READONLY | UF_HIDDEN;
+#elif defined(_WIN32) && !defined(CYGWIN)
+ flag = FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN;
+#endif
+ assertEqualInt(flag, set & flag);
+
+ EPILOGUE();
+}
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_arm.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_arm.rar.uu
new file mode 100644
index 00000000000..19a8904361c
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_arm.rar.uu
@@ -0,0 +1,916 @@
+begin 644 test_read_format_rar5_arm.rar
+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
+JB(`%`1)E;&8M3&EN=7@M05)-=C<M;',*`Q.K*:];'6F`#!UW5E$#!00`
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_blake2.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_blake2.rar.uu
new file mode 100644
index 00000000000..fe783f39ed4
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_blake2.rar.uu
@@ -0,0 +1,18 @@
+begin 644 test_read_format_rar5_blake2.rar
+M4F%R(1H'`0#SX8+K"P$%!P`&`0&`@(``G\AL9T<"`RZ6!`"N!J2#`H`%`0IC
+M96)U;&$N='AT(@(`YGN&)9H<T-4;;6=VSA"UI<]AE5F0/`"<J,-&UD4X4Z4*
+M`Q/8<K!;AO4W+,Z$$@(W=4,T,_1@-+UPHV2`./@$LCDHDIE#H=Q6HO6ENI%`
+MDH(%60!B<&@G#):ZYN\PD8?_Q2T;QM`)'/A[XE<BS#F8<SQPY[/W[C_<ZO+B
+MVJKN>RW#!V][-VM'MJ^^#686N9>>L\.7ZE#3!_/][K2S]G1DR+Z^7F8BN1X0
+M5C;9*7958_V2?B;;=J=N[KHV+"ZA!YHY#/G_C>:Y+\RFMN%A8]94O?OY_AM<
+MPE=<8[N7Y/@&A*5GFV:9E;M&8JU!O/TIK!)5X(1%@FPVF'!BV@KI;P1X;E7%
+MUF:9HH_W^02_+:F+$Y(@/'B`PID.TWYQE_\RLWU#)O3.[Q($`^A166GIT;W;
+MTJ2BC%X%D3X'S<XM2VCU%H<$)2[..]M(;37,H8X793O-@H5X47/R$4ILC1A(
+MMGU'^5C>O%DLWP[4Y@FL"%R-TR'QED.B&5!.:-0?\(Z*Y>@-Q\DTM%F$NB_)
+MR2,7&FYP>)NZC>$5IF2H83OILZ:Z@5?,CH';."Z1XHD*/TW>0;:#%+'H].L@
+M]Y$F)>Z]H[`(+UQGS7TRO#-_QJ!U%RCGU1\95849&LP&15-H7.]MZ[78W*#A
+M&G"U:H/3OF)^-H<4X%:Q^/'7#KVGX!=*N0!%4X-1'89S/0E)E,ZW!'')%(R(
+MD].ET_<?4C8_N,$1&I>+8,B]G5;8>I3T*8I8CH+E&UKAJ]WA;%(A/KO`R^M\
+,"^WWU!UW5E$#!00`
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_compressed.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_compressed.rar.uu
new file mode 100644
index 00000000000..f9f811c6dc0
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_compressed.rar.uu
@@ -0,0 +1,13 @@
+begin 644 rar5_compressed.rar
+M4F%R(1H'`0#SX8+K"P$%!P`&`0&`@(``B<9?VB8"`POI`@2P":2#`LUPRGR`
+M!0$(=&5S="YB:6X*`Q.+5ZQ;^!BM'LKT90$G96!4'U5V7;^4DG')SV6660QP
+MV663&,62$X9"223AD)"2220DXY))(0A))"$)))"22$(2$LVU;WM],PZ`?1T#
+MKC^>NI_W0?[WVO?=>:\Z7^@`0`$`R""?GX]O7T\O'O[NSKZNGHY^7DX^+AX-
+M_=W-K9U];5U-/2T,_-S,K)R,?&Q<3#P;^]O+NYN+>VM;2SLK&OKJVKJJFGI:
+M2CHJ&@GYV<FYF7EI232R4C(1Z%`?CHR*B8<Z<-FH:$@H!^?'MZ>'9T<W)Q;V
+MUK:6=E8V%?75M95U53(3?U_(_0)3Z)3G^$2718HP9Y87:C@IIBF4%^9"T7:=
+M1C+#.,"H1_^@E,9I"E]E4*Q65@N+`9%H-RX'=>$&P`\Q!(R">9A6-`NFH9;8
+M-YN'@X!@<@^N81.@IG88#P-MZ'N]AU?0C?Q80(T8,><*'DT)@V+XX.8Z'"($
+?J>&%%CMC0_GQ4(!L(0T(A-(QG)`O)0`==U91`P4$````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu
new file mode 100644
index 00000000000..8fefa282e73
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu
@@ -0,0 +1,9 @@
+begin 644 test_read_format_rar5_distance_overflow.rar
+M4F%R(1H'`0"-[P+2``(''/\@("`@_R4``B`@("`@("`@("`@(/__("`@("`@
+M(/\@("`@("`@((9ML63,PX"&AK%:S+?_(/\@_R#_(/\@_R#_(/\@`"``!R`@
+MR<G)``#_(,G)R?___R#___\@____(/___R#___\@____R4#)R<G___\@____
+M(/\@____("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(/__________
+M____________________________________________________("`@("`@
+.("`@("`@("`@("#_("``
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu
new file mode 100644
index 00000000000..f9a5ce6926a
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu
@@ -0,0 +1,10 @@
+begin 644 test_read_format_rar5_extra_field_version.rar
+M4F%R(1H'`0`SDK7E"@$%!@`%`0&`@`"BNGU4(0(#!%D&7^V#`I?:-URW@4'R
+M@`,!"&)I;B\R=&\S`P0``<7)5B550C]U!#WY13&:5TJ$=$IZ(*3`C\#F0%O\
+M)$)*@]X[RK.Z.G*HUT;V5FO&;:X/FDW,W`95I8T%@@C:DD="_8Z.9+CQH^IG
+M8!ZF0N)JSY2?R(W@25K`U&W)Q1X"`MD`!M\`[8,"E]HW7+>!0?*``P$(8FEN
+M+S)T;S/%R58E54(_=00]^44QFE=*A'1*>B"DP(_`YD!;_"1"2H/>.\JSNCIR
+MJ-=&]E9KQFVN#YI-S-P&5:6-!8((VI)'0OV.CF2X\:/J9V`>ID+B:L^4G\B-
+,X$E:P!UW5E$#!00`
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_fileattr.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_fileattr.rar.uu
new file mode 100644
index 00000000000..456b0250406
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_fileattr.rar.uu
@@ -0,0 +1,13 @@
+begin 640 test_read_format_rar5_fileattr.rar
+M4F%R(1H'`0#SX8+K"P$%!P`&`0&`@(``-$;*1"@"`PN+``2+`"&+W8Z;@```
+M#')E861O;FQY+G1X=`H#`J*C5`BE!M4!,3(S-#4V-S@@#0JYZ,#-)@(#"XL`
+M!(L`(F^$/86````*:&ED9&5N+G1X=`H#`G(Q.0^E!M4!,C,T-38W.#D@#0H>
+M%_EV)@(#"XL`!(L`)"V,TBB````*<WES=&5M+G1X=`H#`F:K01.E!M4!,S0U
+M-C<X.3`@#0HQ>$42*0(#"XL`!(L`(RZ?$!V````-<F]?:&ED9&5N+G1X=`H#
+M`JIEBD2M!M4!-C<X.3`Q,C,@#0HQAL?6)@(#"P`%`!$`````@```#&1I<E]R
+M96%D;VYL>0H#`HS,%ABE!M4!Q!O^+"0"`PL`!0`2`````(````ID:7)?:&ED
+M9&5N"@,">JRV&:4&U0'&L*8=)`(#"P`%`!0`````@```"F1I<E]S>7-T96T*
+M`P(@+D4;I0;5`2YJ1$0F`@,+``4`$P````"````,9&ER7W)O:&ED9&5N"@,"
+0CW7S@JT&U0$==U91`P4$````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_hardlink.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_hardlink.rar.uu
new file mode 100644
index 00000000000..0ec085d478d
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_hardlink.rar.uu
@@ -0,0 +1,6 @@
+begin 644 test_read_format_rar5_hardlink.rar
+M4F%R(1H'`0`SDK7E"@$%!@`%`0&`@`!KI,1X'@("A0`&A0"D@P(XC;=<(1>3
+M?8```0AF:6QE+G1X=#$R,S0*[8@"T2X"`PT`!@6D@P(XC;=<`````(```0QH
+@87)D;&EN:RYT>'0,!00`"&9I;&4N='AT'7=640,%!```
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu
new file mode 100644
index 00000000000..9b78c9b36ce
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu
@@ -0,0 +1,9 @@
+begin 644 test_read_format_rar5_invalid_dict_reference.rar
+M4F%R(1H'`0"-[P+2``+#!QR`!P`F^P#_^_O[^_O[^R4``B$<`0(`#@```0``
+M`"#2````_____QH(`/__^P#_W5)04(#_`(:&;;%DS+?,L0```````````+%D
+MS+*RLK*R/@``____Y`"R````XP```````!4``````.X`````````````````
+M%5<M;&@W;3$W"2!S;'$2C5L`_____@D0````$"('``"8F)@+````/__?````
+M@```2$A(2$A(2$A(2$A(2$A(2$A(2$A(2$A(2$A(2$A(2$@S2(``2$A(2$A(
+>2$A(2$A(2$A(2$A(2$A(2$Q(2$A(2$A(2$A(2)](
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_leftshift1.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_leftshift1.rar.uu
new file mode 100644
index 00000000000..694a27f6ff6
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_leftshift1.rar.uu
@@ -0,0 +1,9 @@
+begin 644 test_read_format_rar5_leftshift1.rar
+M4F%R(1H'`0"-[P+2``(''(`'`"``_R4``B$<`0(`#@```0```"#2````____
+M_P`(`/__^P#_W0`"(8#_`(:&;;%DS+?,L=:NL0#(3`$`````````````````
+M``"``````````+!DS+*RL[*RL@```-P``````````````````(``````````
+ML&3,LK*RLK*R````W`````#X____````````````````````````%5H>;&@T
+M+3HW"2!SB^)_<Z3_`````?40'Q\?'Q\?'Q\?'Q\?'Q\?'Q\?'Q\?'Q\`````
+5`````````````````/H`>@``````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_leftshift2.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_leftshift2.rar.uu
new file mode 100644
index 00000000000..57ffad72564
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_leftshift2.rar.uu
@@ -0,0 +1,6 @@
+begin 644 test_read_format_rar5_leftshift2.rar
+M4F%R(1H'`0"-[P+2``(''(`'`2``_RL``B'+`0(`,O__````-WJ\KR<<)0`"
+M(;<*`BY*`!```&;%T#%24%"`_R4`[@K+(2Y*`&$``'__`/\E``(N2@`0`0(`
+0(?__`%N&?Q2UH.CHZ.CHZ```
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu
new file mode 100644
index 00000000000..a83c78ca22c
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu
@@ -0,0 +1,345 @@
+begin 644 rar5_multiarchive.part01.rar
+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
+/428#!00!````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu
new file mode 100644
index 00000000000..fce29824622
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu
@@ -0,0 +1,345 @@
+begin 644 rar5_multiarchive.part02.rar
+M4F%R(1H'`0"ZHBK1#0$%"`,!!P$![_:`@`!@&RUZ5P(;"X'V``3@Z0CM@P)=
+M-\$R@!4!-VAO;64O86YT96LO=&5M<"]B=6EL9"]U;G)A<C4O;&EB87)C:&EV
+M92]B:6XO8G-D8V%T7W1E<W0*`Q.H!*M;#]\Z`,C&\^P15*#4'A\D!$R&)9;I
+MKEC,XG)9#6#4<`F""CK,4"%#3^0Y3,$9A-F9R;F=:X1@:"5,VN<GA_9-H+7V
+MDDT5M-RYI(G27%5Q9H-1AO(8['*$=FG2&-F.<(;E4>1OF.'>GM.B9CIL?*BU
+MFTG!2*=&A0DB!=42C[T^A*YB4,-S$G)3)ADR;RN&R)JQWA3=PY%B)F\C!;2E
+M)R6YT*?D@JSE!D8$:6:%9I.74*ZA63^**JA'<&J%6[`CJPF41)`IJ<E*C1E;
+M8,8@`KQ)C0"R$X')'HA\IL4'M,71-F\J+!$I6S8WD<&Y&1!+*[A)XA0K"BC5
+MHA<9T2K/F/R+,(T\:GO.*9N@UG$4?R3A9SX.S'Z:=6%]%2@NFBC<HC8+DIR*
+MGY(Q"1[8!U50(N7JPU-9!\J&$S_F]!$9[-P\6)SR@L*'RL8&>DS0$#L69F\G
+MU6Y?.5Q))C+)GGBL-L'!H_1)PJC."=S'S43CPE;P?!X"$QJ!91@JR=M`N/E/
+M$,N<6!AO0,:TE\:`ZN3ZP(E+5!T6CW,^V;9:8GK2^,82F$6#))F,,A`(H1M9
+M/"M>H0CBJOT12$P&(,O@S.7&#XXWEA^5BZ/*<BU#LJ>6GU`-#A;<D.$4;TPV
+MT%++;;M&P6HX-)F*HOJF4PR8"^P<6M-*Y38^6U;E-&\LZ5#G:1Q1V4T&_-RN
+ML/4HI8%9YPX7)34JG,6D;<)>=@!_)Q],)1,-X6:>]J)5HS-Y6FHFV['TYIO`
+MC<0QSG3(X"_0F&A*%5)MP7E)B6-Y1UM"^"=D(R!G\I5'""&^9N<&@G9*3$AR
+M0^4US-'E9R)'D9$03`X%(3+DF9O'&;"B;!6'"B2!!-5A126@PK6;GI*>A1]%
+M)1V2<O,"+X4WD[N+")F?3E#Y;[P<FE!:MGD<BSP(_Y2_?9X3"*&42VI(@S^7
+MB;/#K)@?+M],/[%G^X$'%QM/-6S2HW7LJ>P0J.DXGON"HD5C)!").9)<C2=A
+M`^4_L@-^(SP2&)G^:%0JS36?/"EGFB+S+`BSYNT73R4_*I:M)N/IMWD<)@1J
+M\::R5,43T4])31W<3Q$E#]/N"'?<(SOJ0_4_'=P1\31,FM/B."CVHESQ`7%1
+MEKUCG32+M(':4ZD51'5*%?54X9!U>XD8K&+N138DHP\69SHU0(+8I$G@1X\[
+M?8^>'"-7T?HD81*2<>7$T'"+-P:/)'=H-@V1KG<2TM./E.<SP@E+":$UM74#
+MY6=-Y:J4-<1OV95TDSKL2I)UUF.)Q73S4DXE3C>=H=<I(,C2+'IGW"L*KBM&
+M.PV.GM9A,&*`BMDZ,N%'<PE#@T3YIZA#2)4X9X4H:G'RLW*ZSS,'@(%F;RJ]
+M-;`/0FQ/YL2<EE9I.]X57@Y[NE.V&Y8`/`3*F&?G)9/`('L%J8#=62G*;UB/
+M1YQ5"^4HSNM&BCC?WMQM$59P.#]PH_^#:M3CYH2;@A*>6P;<+2F)MPK6GE=0
+M;=2%QU+0P\7%9:0CH[+1&5S@_8"=TD)I8&U)S#`(-240AE9_,LAX3\O"%GE?
+MS:GEHHIY?IN7EJHY^6'[CS)/MKS"U3\Q`7'F&+:GE^(L\QDK1Y@4+?,A5S\N
+MJ&_EN>X\R!U?F'1$)3FJ9P&?@7@VT;\2'BHMX6Y4_/M9J:DIX<9OESXZ,V""
+M/=9#5WB#.P83%8F?4E(=7B,]GLYGAW45W'RC9G1Q_\ZS'S"2-?*IU\P<S.:A
+M+6&D/%NBZT3RJP'4<N5&(:E7`5/33/"3QLE">2?`L1T_):@]\FSTDX?,,3^E
+M9Y`S"\DWV08_!&,M*RTD)9'(,SZEP4-B)F<`%,#L7SAK26L&FE<&-W_*R<Q+
+M#8G&99S;6:TXM3-8]/O($&>M%)!A?S\NH2A(&<3/../C3\)*)Y4H^:-1>C"O
+MNM4S1^#/8_1FC1L@FRR&$U0-FI65G5$3,-&L.IHPGEFDT^QRNE01I]J;S5PE
+MFJBEF*XT0X<U!5$(R$[)"FN2''A&V'2R5H15EJT4O$-.FIYPVTF>=0(R6J-;
+MV&$FSRF?RV5A]`#3=!,#B!9HV0/H)*>F#DI!KU8_<ZUF!/2GDED:;%'L@-6Y
+MC\X/YJQD>8CQLA8M@&VNM^5:ST\<V-\/K!JB^U39J-02"<BK<4$GTV%CG0Q*
+MS,3=*G;T8O&$Z`&&Z1T\Y/F3:'H#3QU!3#\<:GP";^#C`:N65->%=HV#T9H<
+M>`1@WS<XLB$'WF\R585K/SV%G-/J5$V5EE0KHS[]HB,.,R/E9<56')\#7>9"
+MM8=:%&&&6K'/"@5'"J)FXHL!G+RCXHN-S*=9TXK,S=J"EGG.-6CBXC@TD5X)
+M:",C<M%9X^P?L0I^'F!6":G5`.0RT1E([,)2&A$D93.9^*T'92$7$#+BV]*(
+MCGQ_,O%#-Y]%F=-(,(.6D%`-6U,@ILPGJ&IG4AM3BQ\R+SFHFQR=4HW4W`B&
+M8$8+79"*30_^4T&`B8/`1A$R>HGN@-87<9!HZWGPG0[IFT3>H4ND[-A(,)B)
+M1P+N*CD\>.T<B0WJ(BI9#DIW2S8+40^2GY?!C9P%\V9'*.#HCQ\=E-F='5"^
+M>65L*@=%[:-EI#N&>3?#3,:FEO1%"(W)S$^:@'3`5>*T<!Z1M+^BLV>\:%@D
+M^C.*:"<%%)D[Z!YJ?-8AQS-O\P&,/HL>@<*:;+^+*%OIAPTTFAWO'6?8W&"Z
+MS^JF)TQGE9V<GFBA/*YKEXZ3N5F%G`8"44B(3XW4H_,LFT<^>Y6BB+E>438U
+M.CYGP#G`9N<<#XTL'!I2GN65ET;9^S]JS>T`W!*D*U0'+(LU)__S?B0?O7AS
+M=`RZ@E8[<5/JF>@-I)#C3%\G?$C8H&`5>=">#9]@#0*?EY)U?,3C$%/$N1^2
+M$(.8B/\>+8.&/9F\]J5''8,<#(XT#5Q=O&1>`-2F)Y]&#[!G"88?D";$TJ(L
+MJ+[D,%\'&8L59'=SCGN+XN9UJ+.*P9L]N,31!ZC7(R2HE1!J1FOT2C9F^60T
+M']ZS]3%W"T9N54G!3-\BC9_@003H?*-ILX%.IU%K@8/(X.<TZ.*(:#:*FEB7
+MFQ7W5TP;?D,6FWBVDP%UBES:U#_V[7Z$/A9M9_)M8<>V7_,8M2EL)BVDX$V^
+M*O!_(RC_\.W.@;,B5NK@CY"&M:(\]MX"^VX&WW!LU(0F#-@YC0B8&U5P6)_:
+M,K:FJ*V9T?_I*^C+PGAHIISU9;;86_]XNN&<2<.3$*F%)_&_`D1R;-H8G!O%
+MM4VC@WA):F2UE?6"O_QJRH3^)4.GGIU;_O6ZN.:OFS[W5;4'\5'S%KK)(3@S
+MQ:\&]&F#=7M@6JJ_6-T07\I<6TJQ@5R57^+=3ID[K&ZH_BJ>7-M*@<&<E1_A
+MW8Z;R]J0M>JP3'*S/_#@?M[.O\9EZD0#K&SWU2$DL:=;3$;667_R(.Z$:ZR7
+M^UUD<UGH?^WM3T.NZR22A+Q_=8.\L=8X/`OY2]+:5$P.Y*E^]PAY\?&;5BQ4
+M,_ZXX40WW3E85'GOXMD=!&'`@*&1/A\>H%2Q*YM"N,CLN?)63C-,UP:2P\*T
+M24/\2<BI\&,<<0P5<(Y$@"K<K-FX.!BB9>8GAT%0?1J(S.I>U!U/3SV>!1I?
+M^!/P+%.6.ON2$L<?D"0$[@V=]3H#\FI"J(LS5,P;IHCX:DZR6MP)J$94J4^;
+M1_C:":8DFX:`AH"4NM8<DXRYYD1R%O/%?PJOSZ\Y:V-Z39&;XNO#ICZAT/Z\
+M1WG-65EQS2]?G!V[X!K&@W1`F<Z#/0YYBCSY6P8'F$BR1F@!ID!_C@;MP'K0
+MF%RD&3VB2A.B30:(P^P!NZ*8,G/[(H4B=&4*>B3MR;/2%"D%IBA3WY$H4]N2
+M*.P-\.G`*>/)E"GIRI0IK]04*2,N4*9K4E"D5JBA3:S11W!OR*8,FIFRA2]S
+MI0IM)XH4\"A!JD#XM:#58&*[,&L`/((_,0:\Z\D(![&Q!HT"Y[(&G0-$2H)X
+MI*DGTDJR?WHBA3![,HR!IPI"$TFT*%(ZC*%'BD*%*+M"A2^;8H4]4E@21I2A
+ML^)3%&QYI(TD=VY0I2DJ">1MRA2_=R4*;/NBA3H]V4>09IN0"EW_D4*29)TF
+M^)4$_`E23,]^4*=V2P)S2/ST#8#P"A2;)&D](DZ1+=%"D42I)_3P2A30>$4*
+M;HC\]@VC\,H4I"1I.^W90I!>*4*>L2I)<-Z4/3^04*7'R2CX#1C8A";;RBA2
+M(J2A34^:#=N!A^`#;X#3\@&Y@#QR@;I`?Z)<GT&X_KDQ('B>P#:`#8^R#-`+
+M][0-W@#'VP;T`//)S"=][A0IV?NE'X&D*L`I@.64*59&A/0]XH4W/OE"G4)S
+M"/'PE"F[)<K@#>T!B29#X@;7@19.\),DWQ.W)QR)^A%:[79X?M"_+KP].[&H
+M7)S]Y`Y0VIS>>P^6=WX%?T>>I\;F&S2+JV'Q^R[X_YE]>=8QHDLG=\?!8B_W
+MU/VA/CP-G%MF_*S4.(1VB_*O;LO^XQA3I]>!HHP&NJ\*NEQ7G`"K=`9P8#^#
+M6#^H0/%?A`:2S/"6E_^03S0/C*>R%^0$],#:C!WZ1;_:$WD6#Z(81]];6TJH
+M_Y`IHR8H+:L*1X$Z2P7+%?KUP;UY2&&&_DFUM:%-TV-,3/+1^,">$!4#$7E+
+M.\@$\UL<RS)L+S`3TP+['6VQ^\C4O[;8\A94_XP3D"FAT0<(\#G#%O_1M?\`
+MG7MCTQC#LEJONH3NFQ_./!O=+?V`GA%,[I0:Y+3^^A/-`B)`&]9:7^($],"N
+M&/OSRWYP3>1NC]\-P?7K1_Z0G(&I]8-P_U&U_S"8\".E`;'K4?Q03KRD[+`T
+M^%YL)W0'K6?'A`70;H_?V=ZD)YH'E#=3R:T_Z8'9@=,GV#=?W9V+6)HW1T>G
+M9P8V8VX_\#==Y!M?%A(]_N[+5E:06T^C"30(\E/VXH=$V.Y#CNP.>3RRW\AM
+M-4V)Z@!LTM'\N$UH'@E,J%MBXLQCZ+Z55GQ9V97EXPP#YK`;]0O^(3(@=`I;
+M1?H@+E0APW8&+*=$M_]!-4`Z:VV[,=:4^9L6RY&/HVY/#@<Z"SOJPEF!RAP1
+M?B%ON@F&`BMC;<8.1*<DGB!?=!-$!$C@P]VM+_@!.[.?QP;?FMK[X)J@.R'!
+MU^,6_AA-:!\QJ?$A:<55_CA<_]MAFL=?O`2S*APG>N+=J$PP&:'"EZ9:G_9!
+M,BV*7M0;5!>6":(#F#A>]LZEM1NH;W8&0IP;>+5?\0)JBG&)%!?+!-:!7AQ'
+M^<UW+;EX,P,B2."\:$PP$];H_(@>`7C1`<<..[`^L.-4!=.X#A6@9,.(^DUD
+MN7BS`[DELUOPQ3W:@&_K9WWH3(@1XXR.);7RH31`;4G$"_IA.[`OHXUO!%M+
+M.'OZHIA"7%:C[V$UH%['')]W9WVX2D..S[K<`W\K._>!+,U.\]Z#9M8\_%!,
+M,4QMF=HM/^S"9%L>&..[[-:7Z`)H@/T;&/"U`JA_E+GNB-KXH)J@(0<@'PUJ
+M/\`'?P*TGM^(#8`+*%OI@?#_,&Y3L%O6/=^&Q<]Y')'['R$9`=9>/WY\32!0
+MCY8P/VGI`V]6I'XH3*-A\],&^98P.L"=J:G]D./C`;;@APXX$1Z@<.>`OX0-
+MXX7W82ZCE-^U*?Y"]:$W\"+X8-Y07W@3E@/B);.%'E"G@<0.&U`D/5#AXP%^
+MJ@;D!?BA/'`]<EM(_SP-!Q0X.HY?=_XQ>%_;'-)+!>2"<L!??6!GI99C=PF4
+M*/G]@;O2W[D)VI3:DO06T2'8LL4\8E025!9<&[A?$/C_MW0?QG3NI(#MV$2^
+M0G:.Q,91N^8?(:;':)#A!_\!E!IRL_D?B,3Y<_HF(_`(J].YSS[J+[]24N89
+MO(!P]5Z@GFS`F);%4&?_N]\G859ZV+KDK8VT`:4]5NX0L)^JV>]X18NR2SUN
+M/O`:8EU=R)^MR]Y<Z?\.I93A7=`A2_3J;JVAV;:X"DAX;:Z:A`>2Z3]56W._
+M+=`VCU3?7EU0J$]3`)N[;5U)C,"Y3^VOKDF]2ZEADYG_];*RG%BQ=13??U!^
+MR+IN@]@76^9A'YAJ`2__:?$_?E<O3%)N/Y=3;H22Q*`G:$[TF\)Z).03X2?2
+M3\2.V&"+H&NP)BB9<FA)+$H"=H3O2;PGHDY!/A)])/Q([8=0_EUV!,43+DT)
+M)8E`3M"=Z3>$]$G()\)/I)^)';$%T778$Q1,N30DEB4!.T)WI-X3T2<@GPD^
+MDGXD=L271==@3%$RY-"26)0*O5KQQZ^_I^OMZ2WU]G3]?5TEOKZ?'N<_7AK4
+MAE/U\?UI<I^O@_:ERGZ]W]\7*?KVO_,N4_7K_SRY](-<4,I^O1_++E/UYWK2
+MY3]>7[`N8'T5GKQN7?,#5R#*?KPO?BY3]=_\27*?KO/DBY\8-109S&5RN.9P
+M&8S<=`L\9!X>#A$L&WAN(B5:V%4+#HE:_Q,/NB\-]KC`CG3P<O<QH;4<PWJX
+MO*@R8;<O;9@OAY.5#=>'S^?,!M1W@OI<8L-J/(%],O&AM1ZCQR\YK0!M1\#_
+M)>?G:(-N7MT0D7O^./#:C^'/+S>Y(-J6""^D/*AM2Q`7T:S`;4L<<@O/RIH-
+MN7M^`D7O][5AM2S1U1#W:@#:EH"S],=K@WNN`$3R\.7)V(;4M8=[9\^CM`VI
+M;(O1?&XF.Z,&VQ7>*`].Z/?*BU;9"^_C9U?U_7L=.1TUYYEF\2=FG2\OIMR^
+M/LP<D.EX7%+Z[]F1^$NL$!P_IL3&[+G;L6P[FP>C$:$?:#%V8N],5,6'SI[/
+MC0#L<V5+W>3(ZN]0F.1J)Q@/K=Z87[0C*'*+HM@<V3J/70*ZIM,7;KO#!#Q$
+M(`;J>6O[F)>/!1O8`X@5LL\;,'QATY=.YX&R>#I,NC+IWZX^_4[)Y:O0&<=D
+MP[0/0]9_CO/81HGJ8E*$&C5*6/>_H40&^)PGIXVUZH)T0+LCL:*TBD^/B</+
+M2)!#R9G:Z@?DP"7,RHY.']P@#[_HZ'8!=V:JI+\DFZO/'+12W9,:B4U+P$&G
+MO0SS'@L"HCFB>4"<`W2MZ,BL"^!IZ:#N00:,@/H8LSBOT!2YO80YQKKPO*(J
+MK7D7D7HK57HJR7D=$5XNIG`F&F,4E\#=,>>7KW@#!79",H<'8#YA3K^XNV4L
+MU?7H"HNR`KP`7<EC7,`.Z3`\:[`=Y=P>6=`-Q>$3\T^`=Z@M,/I,])WUX[-L
+MYR_N;LA"OM9`=^VA\.'^%=P<>365^[O?9H>7=CH+OKTBA_,X+YMY![B>?]5,
+M=NQR3QKX1W8YE<=@!S$ZGEL,>9(W2('RDI*TX^-B.N'L`KD]`3/7#X][,'XT
+M^ZN]Q_0$\@,*RZH4?8F7=VO'7'L<43NP9&XHRROQIQW=[F>6+\YP?^QI3R>0
+M*U,-8ZG05T\(TT]58LJ?F(_/S.+;,Q78O#T<QCN#RP<Q>;@/I6<Q$'B'<!DR
+M8WQ>&F3R2\`,GJYXP'7HL^+T6K7@ZNY->H>;V)%\\QMJ'B#8OSH3M#*B\0CW
+MM"O>A;L\0KWO#J,RXIBD\9%]XB1SGXQ]S)/AF./[+2G$X9[VX%Y9#RUP\0[W
+MWY1F(,P`RK(S5+^RPSZ4B$%J`986S69>S-1A&7UKRF;N`^RSV,9+RJ-?F9MR
+M&*ST!I+F9A$2RBWDI'MGT3)J<@:4KR[(>H]GC4W4Z@T(R#KJS=%%@&[?9&/#
+MSA'S+&GGOCF_'F#1+82(N8O5WN1K!#"N,=7N`O$:86?/<,6NR-(>)@WY,-R1
+M9L^_[,@#^-)O#33]P3$$91^$I/W-=V\MU?N6Z@C8T%B_<AZ+M^$T=Z8<K'W#
+M,<(8TLMX8Q/N(=S,8'<\-W`Q3(Z)L66">2F+!WYEL78#&`[^RT+$#&@[-EMW
+ML#'`\`RFUX&/!X1E^;Z!D`<1EB>AR(/#,O-.0(8'B678L`(<'C65*Z@90'T3
+M+2N@&6NF7,`2+*^')N7N0\QO2[+RCB<2A-9UD/+.+[%(W&C+P7H#,O)JSJ%E
+MM3T,9<39%6B901U"S8A%F;1EK5Q,XQSQB/1LNS.)YU]TYMS;,O$!=D]_"4J&
+M7>%6DNLU9FY$Z&8A'W:ALS=LO/.I^E0AV]92#(#3,C-?J65=9J0>.T`X#+3-
+ME(H1NJ96!5IV.Q,)\=)AWYB<_.]V-6'</:=&Q@GRX]X-0#NQAV!_T]`>Q$=%
+MTZ^!G<:;<N/<O1Y4N3>O))\!`7MPWUP&=-,.IYEA]IORX8E_RQBD]WJYFETK
+MYYJ#(9P-[V@MTN';(F7OZ#"=PIDY>K,'7&[O1T\>.\*?2P.5W7Y3T?&?`+Q=
+MSS3W.G!^O!WOBGG[V#W(??0YA$KG\]`ZOKL<WX$W[<[H[NIGHNOPJ[M3;UU@
+M!8LDNNOH&TC5?=>8;23'6ZX(VB9L;KI#`"3]=="?=9W7&&NC(:ZXTX%1/^P,
+M:A+@\T'KW^^FH75_NIID=YX,Y[WSLFP@9;V/MQ)UWAOAS8]SCNV-VFE>/=2G
+MB7#LP6J.![P(U8+RPC(@O,![M_=>`_KD4%V]LQQN5[7OOYH5<YRNWNGFKX$/
+M;4W%R[^BW7]!DCN>'3*'>@7/%IRX$I<\>5V'PF.ET@+Q$G<!S9OVX_$8G78V
+M%(NNU77(U8UV[`PW=?/4W()@!Z(0]'PL3_U['S###(J?V;P/-N-FS9/]\?3@
+MK%D5/]].\<_)7=W0'/1UB8W;$L?G.-^\9$KMBF2(!^1.JN+1N"!B&^B!>#@I
+MW:OS=PUDP!]/X+R\&6:](&>OZ`M.8W=_=QYO5O?S#5?=[N@ZWN/,AUWO![%0
+MKG#F6&[]?=#B[%C>,8O'D3]E!&#;QCGSZ$(#9&`;QCWS;E=B_7C)K^Y.!S;L
+M!#O":2WM^*91X*[+Z3'B\96X'.[$XAF%_&<%2*"V9""QF@VSO&<7O;(F="V>
+M#7*7@9]!N8LKN\`:#KOL/=%YHRMWB.1N/YSW).F&.2K\=+)-[0N3+B'`Y1&X
+M)N9MFTSMGP+V/+ZMXE7<YZO?WG*>H?#7!IT0[)?M2<PY%TCT$>4Z`:5^C4(&
+M[/@$N\'-;\<[3*_>DP!JK9M][-"@OIUEG$TT.!M%_QD_HZ@4"A4'E/6\:Q16
+M.T!4/7&M3O0I/.WC$,,J\`-6)(5V1+TAS!D';(&KB=SHAEG8U8%\D)YH#1;L
+M:JB][8S1M"[&J#O>N.O4PFM_.9`3KMM06S/+UKL=-$D'W/O";K-X'!:7B_LO
+M">"2AUE[!-YAJ9AD`R*[+`GH8('8GOZ+Q"$>A5XZ6]FR.M3\DP'F;F\:]@<N
+ML(DP->8E^,^&S8WJ]L*PZH;X"]7VX>2>7"+@!/1JBQ"/K>$WV+TB2=ESNQ.B
+MP_IQEZQ!IG<WJ\,<>+E#*6,L]Z[!AZ)QIEH'4"#?O[+D(X9*;UA@?;,H(7MK
+MUB7HUJ6H1%?S3RHN\,*JG)-VYQB%>>O77<]!=AY'<O-[3W+[GS"J[P'MDZ;W
+M2HR6M]'E7M=X1IG=AN:!>(!P`U?O]NP'ZG@WC.R*/;H2_5C`I^P:E`WZSJ!9
+M!J7)?\2R`'XI/3(;-!77,B[G29-X`>0VT)PWD![#="2^KP'Y$-`K40;'H2!=
+M<VX;MB?$<MW1<>ZI*U0&CPF37VN`*K)]$'T!S9B!-U&]%6[#7834_J`;$AO=
+MW\-1SXD>>NX1O0VQ*LVW#:DC^=&LX&^`76!OEF,5VI7/N'&SK`-#->U2,>@.
+MZ]`ID($&>'<P#E7M1+GW`@WI.@$TN=3C16JE"E`Y<7R5TV*BJ(`G6A?^V.3>
+M`QL])^Z4SQKAKYW+VFZ9<!'3YISOGJY;9!43]TM8+A'6SSGM<="\5X*2/D(^
+M*9B4T*G!8YX0!'M+.G<]OI<%_=]1,77\W8%1:6_G%UWH/?7:8[`_&^!,>OY\
+MY[OWMV.11!ZC3=A,-F#/M&%`4`9$1$,C5G!(:+TU=U>K-:T"0EB2Q8DLQ+-*
+MU@D"U`M`(1KQ&G$EFI!BS,,U(0"2!"&AM@TC0V-FA8F#?4,$A#!@,2#HVQMH
+M8-L.Z`&#?6/HD"T@(6@$:4N7$WGD3-55W=9F(TOO[A^;]YSWWX>\]^6:+J=$
+M3$Q$3$Q.BJJ\RZF?\E'\$\CR/(\B9B:K+PO.'.7R_F<KA\_%AO6!/V_1SO2I
+M?0R7<@2WPUJQ`3)*W(:2"4X(EWI#Q26+B[`"&NK[9`\:&_TJL;D`%RD1^/#7
+MRUQ.^(.SH>_/#B&AV,/'B^LDO/($B0M6"4'LW@YVC0#Y9`=8>G`3)+;"951^
+M`)>@0HB/DPWQJFW$4T86PQ['Z&ITX9"\)*<0$0EZA"H<E-])>N0X;HIGB6Y(
+M?`=(OZ0-*%THR:;#N33K[D1R_5X4:,1]M7A2![!PA:@S(G!VBBYZF(_8$^HZ
+M0`TU^(EDRK\91.V6@`+K(DS\,!5!#@9K\<L]<Z>_3B+J2=X'1L->OX2C2FM#
+M?DE/EH;F+7,91SMGK*CW6!E]15"0"],)?T\Y+FM+RD-_U[E.0/3G=/%/YHEG
+M9SGS0WRJD61A2SF:?E,H2K%),0+R2R1I\#V<)9C#Y0\E2_&"/WW<L$'A]^:6
+M>Z$!]YF`<4=]2!86&YS/;$L&Y:*[TBB?[1ZJ.F$E@F?TK=SQ.W*C6JGR0!*U
+MQ0ZY):^3"34F^WK"7DO"=?+$*+1)`(C%22FGU*2PN/4AC44TY+G15Y<)A3;U
+MQ`=B:?O,0-T^(VY#\B3+_7"8J0=K&'B)*O]B'VY"J-)G[4/N:8';L4B37`F.
+M9^Y&7(E?DRQ1IH*HZ98,CHI_]SU3^;)4J3FU\*4Y$JI-:DM/,@N;PT+7$7VR
+M.6?JCIU+R,*P6?*3=GN422NR@I0YW'9$NICRG,RY1GX"@*^,*3::=LAE&WYX
+M,3DTKW>@'^BKJ]`\B#`[-*Y&VTP(OY35([5`FNQ)=?(&RD8WV45'8!%6RE6/
+MNP7R8T)?MC&5P/O05_"57&#\=O2'`0R7H"0YPT=]O!2M5&'J6RK#G^$N3=@A
+M,XDMZ5`_;JR6<:ISTDPAB.G$8Z`L]"3]`JZ$F)S/VSV->2O@L5Q`5,YS"28L
+M(+Y5,WEVV)Y7[+$[9]TQQG3&ML08C_,!<7`I!_LLCG*@J:`J^^U0![*#RZZH
+MZ\,+[3_A05/YV7566HJVIKD'$JK39B<^)R49>#`KHU50KB,&,@9]Q/=$=.4I
+M!2P7[C5$NT=$_Q3*(A+J`IE+QX#IVNGHJK1V:8'")(-`]"+BIQ1+2UP._4";
+M/RM.E1B7)"`M_)BZ`(<F(P^^J2:NX@W\S!2P_0.&!).?K-OG-,%4('4&`F5E
+MX)(&^BSMB,2U!5:W:W>A^%MTG,FFW:S)._@U=2D]/B@)7([#KI'YCK(B=&,T
+M8,,`4TA:ORBA-.?R0$:I++Y8!5V_E*(#B0"KM?*(4FR-3C>":>D9F6?:HMYQ
+M!LTQEZTJD]@E\Y#*,82M]3%\J/(?%*)]S$4!7I5+^83../)"OL"0IZU`Y&`O
+MD'RAC.<<;(O)P(G9,TGCJK%SZS]4PTI5F"OCKP3`$PJ#6*7[#_"LB.?[M9$\
+MA@'JE8;TNB<PPWX$QY%,!WR`:4>_ZU"V)7V47OB=*2[XGG5*IA_C$$UI53GW
+M[]=2XN?G$3L7[*VJ![J1AGV#7Y?K(O2-4H^ZB)PIZ=^R@N=JA8_V+]A'5*:2
+M`]@(J<_T2&!_#)<X)@W1'F23PJS,<U,G>41O3K,\VQ(W[OMV;MNHNQ#7LEW)
+M4!C$-4[*(6TU!<=H5Y8GK"WC!%=J5]\=+F))6*.=P5XLGJRWC!%?;*\"F'G$
+M+#%SC;T3G8NH+>,$5UQ75D9HEZ^G+CL"N\D](6Z`BNJ*_O$7I+[Q<^L5KD[`
+MMT!%697ETAWP+HG.%SB+V3^%<JK"WC!%5I7XQLNMXA?#IHO.E?W"BBI]'4)`
+MKXQ5V8F'VUXD7/EN(;CB50B_9(_S);,JD"S_L5_]$Z4MXP171%>E.K'^]"J[
+MF,<3QQ/^,7.EO<!%<X5_M(^42OQ<ZHK\LGF"W0$5RQ6NFYS(6DZN+^,K],BJ
+M5?A0\M%5-`AKT2R49TG!.SPR8&^^TC$!JVK@1H+X44"RHZ;16GG_L/8TTA+9
+MIL`LJNPQ5RQV8>67*38Y=.E[")9B=LB&77?LWR_N$BCE&G]*XH\>;1/CP7&J
+MMF"!Z9IF=M#(FBZ?ITQL[\*FPM%9627U(IIAG4S3?Y"=T1-DPTL\(V$_]'Q3
+MA+5'&1OK-W'`%@8RS$_@'BG^'9->?Q#Y$\DR@=+4WVWQ5GR(>HJH)7`171$)
+MPU"=.P0.QLHNE:N*V^18`IU&X?T2&[AHG*(<^_3`:A]+,T$S]D_1-]8D.244
+M7=%OW1:#_,&#?QJI9SDD*:CEEJC;77E";>#X-`\?CR8`K\P0/;Z9@LQ`85B_
+MT("4;7IHH]7IJ+06:7\WU*@#4$)9^4X9B`X?5T6C1.-);[JY^O>%.2(@EW"3
+M%XY@TQAV57V[,/BN<'L$BYS(G!)/H`8,0/1%-&VX]K/,)[1&_<PF#7SQ5BFJ
+MH5]OR&`+CV&33!K!_A&$=S_/H5'%%QEQITW^^]1/YK`EWI7J(XS`%.(W#^@0
+M^(=)OP/99FX0S<2XF=10F/QTLMD)MX10T#@E8`L&T(XTA_0H7.1?ZD\P20$5
+MDIS/&H'_9ZUB'9[\!UDNW8G.HKHMNU4X_)?R8`L!&W#^?0TW(7[Z-*:%&F^,
+M1^=G^2?E.#97F[^&B<=@'LA5H\=HDZC$]`?-[H_B4BG![&YN?VO8+-T:!:SQ
+MW@3K4+]6CBZ]I%,2;)@"FY*@T/YY#ZU9$Y!#46L89EJG'$W!Z<E@V9C[LKL8
+MH`L"C</\.AI0S8QZ<5'R'^"C.AR)'+DNNZ9DQVD^WS`$P!7IBJ_U3$R"`P*J
+MD'7(":P/*/2KA]2Q,T880EONI5?YN9>ODC",-GU::J?-/2JWZJ<J39><V]3>
+M?(P[?JCK!\X]*NUZI6!OP^`*@:[B>S#E$3C!<Q.EBVI7X<4`3##OQXH@$5XD
+M5`Y!"V"`F@1`S#`#LU5_)UZ5I)?"$_/TP(;\J1EQ%D3GJPE^8KY#`DP!(R(!
+M&4!&4!&'$5R6WDFG'^R%35<7XFE*]NBP!8!&!`3Z,(&11=Z71/+*:4V^FG*D
+M[5#V%FLAI20^W6*O,TV)[]F>IZ*HM_=6E"9Q/VDY><P5-E51=Z5]-@B8`L$C
+M`@,0C'Z5I8K_`Y1-_DD8>BM%_V6+6Q(^02HF2&RI7_K%`%AI*JX'^)0U$)&&
+M7C4!GZ)'\I+<5,7-E='.$P!2=;`/T7<3X:R'16:7LWU+#,B9(A_A268%]5-J
+M;VS$XMO"U8@>L5]LWIV[:+VQ:\]"5`9ME)DXE8[[T='QI-[<GMM-B<6R=E%(
+MT[=X6^1-IAV*%_I4-TWT.#)@"Q"-P_QJ-^R:0V@/94HU1+HJ@N-?'&8`IU&X
+M?T2-^ON-^O+,8(TZ(V8^F0KW<S%X17IFRFNFBZ8M?YG53M4+^%.7%7.D[4LV
+ML6V+>V+-L6E#YR8"$A3>@B[)JZ[4^$)PD/8%48(KO8L-FL%V^F3.D,D,\FTS
+M$ZPXIW9:?ST-4!B<TEAW;H'3P2G(L&*XG![4\N91:%A4J:^/IIS/.;B9@EY:
+M5=I4GXBJ\>-+3$Z=7\6>_(RL,GD<6A6@$AFC`OTZ9DXCQ$['/DK)I-O[8Y]@
+M"PD;</Z-#S1U#>*\0Y_.QE.-74;WS0UOV)CY`N9_"DP!8)&X?XA&_`+*`BZ$
+M=4T.?UH7K=)%IFK'?S$6`*]QEL.KBB`9Y0F@*F7]A)`[>+G24Y%UAVT]&@?T
+M>,)C\M!I(LQ(M6/^GA5M>K(=XF=?]&"8UW1Q<@5\IAB8`L=)7<\/\HAI5:V#
+MQ%_L@1IPBL\ZR2KB;^1XQABJP\^([]XS=O8P[`Z8J0EU_/Q;V])U\]%`%BV+
+MEBPN\(#DT+@E6)90UN8P\IV4J(1`]?3,$+BR>85R:S&/&,\1UFGG/MIF3&O&
+ML4;$?*?WM@`[?3I+</L(2MR'2D9XEL!+OY'3#CD!7+;-FG-N\>Q-R>465J3F
+M$!#5BK<E.TX>\@\?*JN_8$=NG)1R+-#.K$!C'Q3?27V].XGNR2:7!=I11@N=
+M)4[3`>BGV<[Z`%/-8A&XD0&.0O$0$H&0,U&0+>BJJY+_HB0-:<3>#/?=LT6S
+MCP[_A\#N(PN5.9Q\I_-$J49T`YX;MG/+3SZSX7;%+?+3MDEZ_)!L=W*1U_%@
+MP*[FV]U\_BBP!8.2Q>0?XE#47T89=G`%T5DE]S#$=DE&9&'2(6S*O1*TE9_L
+M6_^Y,8MX^<C.?)8)[X^:;L!\!AT,`4FQK#_%HJBJDO>5:L*_UFCOOV!CJRYL
+MBL`4FQ9#^CN-0]RJ+'M:LYU*%R^=B\BTH'D<03`%@457DA`42*KPB6CC'*1J
+M0:2+S9*WKYS4I$>J=L\G;C#L"/7E=M.U1B+[#MGD]E>'](19Y/6@)F+5NV;C
+MG&BD(P"7GUX,G*':CZ-"YCF(O$1?>(L`4ZA;9BOL(#%(7F::,*-+_E)+EM5>
+M[*Q,I\X&<YE"J.7B[QI7+'4!/,M(OM269*[6-.9:1=:J8E9N008F=N6*[4U]
+M^7=L81S;!\*0\XRBKR[49E0=<C$$M1RT7;HN9H66>.(C)JH/B&#Y1%%36J(H
+M'<LB[6H2_9,39H`Y()0NX3+)T/JBX-\9KRT6AC"B=IPTIU-M#41C>V)L7G^I
+M?N$O\$KD-4K.IFND98`UALN<2[9RZ0VBN*:>C&"Z5)MOB7DYJ+^II.'"18`L
+M`C</Y]&ZY:U*)1H``*F/T/8%%Q**MU'Y`)"Y4*/N`2CFZ'^#1M")@STCN&T^
+MS\Y^$[6*(T<%8XH\2G##.G/?,<HSF6JONN%]/HK!,9-,FU16-35)?L7`?)))
+M@/:)(K2V=4/(PY!B`V:;&+V'3*3)WI4O63&K)VRJ3'>W=/E4:=#B9YA+K#`5
+MP="_Q.EV69SB>^X:['[G2:"O5Y4E_&/?PZ,F`+!HW#^A15$:&_.=3*0M$)H(
+M\YHS<[1&BKSVHW,)H%\^.=:DS_O=08HZ8[OHHOHY@_1S^$$KZ*O"BB_:4<UI
+MB<"1,8S8N45LE[A&)@SN)P[)B=C(GCW[J59Y^D@>T:3_MH7IY=OC5N9I"?VV
+MBE8N9@?T"*4>/8NI9FD!!#[`,FG&GLF(U2S*G^`0V#S^X5S^V@QIO#`]7G:T
+MHUKIBQRK`^I",`D#`HSZ;FSKJ'0,8*3OFE6Z3$J0WG6IL.?+!+ZBCSW^ATJ6
+M8UC-"-.Q/@@,J2V&G//$>:=,KLXC8,S)^EP2_[I%)1Z$GG7&)_0KP?O>ZRG%
+M//.Z]U`9K^VAR"P=0L<[(Y@[5'IW3XES@%E<&B]BT_#.C%RQSVY^-RFB#59*
+MY')^TC86U.D"OJ7EQ%%9)>XAE7*N0<:SS[FO2+OE<S/]#"W[NW_X946K!@AX
+MZ95$-*M/ZV=3,$LZ@L%G4!9=+F`.N/4B=.<*<5P\_>;N>W1U0MVP5_D<G%\Y
+M%V.*)@"P"-P_GT;;P$=A72-`^OZ-D#$,1L9(&11N'_*H<]4IFS^C!'\L55Q7
+M^R*`*3SJD/T6KD6SG'M7%+V$@'H,#/<\E%J"OD,63`%?D;A_A4/NUD32$L_/
+MZP[GOZ+EK"'*,>X&!0LZXI-`DA/$0/NJ\)<W--,!.QQ;'0/(CF+*[5VJN@>/
+M%<L6N6SM3Z!W\9S%0.WM7%'\*9CUX&5*5<E',+R2/4L1UXEV6X^C-A78@/K.
+M1);Z.06`QC-P5L4-GD9%P,,AL%((#D8SQ2B3LR=OIG&,_LDM:5`I&9CQB+T"
+M"E*U*VHJI2MQC?3.U,SKE[*LR_`E>OCE'G6RO0?T-PZ0^F,<8)_OO($N"5^P
+M4,&"(Z::..,L<6M'^"(43Q#F<>W7\P>-:$(CKRC&'+;[Y&]$/#QQ+NRNSBH%
+MZ9:X)EX?8-,7<1.<0Z);XP+S4Y?+CM!?'>X:G_:+\\Y:[=LP\<;X].6(=I>4
+MQHM"<$G+#NV?L/A83#K3-XXI'C/;V^1E23;O3:NP"/95V\T\+5Y%>17D5Y%>
+M17A4>09O$4IVKMX)!67>*[=V5$HJ-*NW:D%ZO\KA%OD%X.W.G9)<^VTWC]?(
+MN2HXW]:+>0IK>."Z%S[;#6H%[ZZ*EJ*'4E:V+A]A%6R,IKXJW)1.VBK9*'T\
+M5;)P^KBK%LMEU#I"6S4/8E:V<EO]W!-;.RO]7$5;H9J:*UNB4\0ENC1*$MTM
+MY28.D<0$G+AW4:X1%[B(@[I-A(+V@4[7/ME5]1K^<[*GQ;/L8_4"HE]C5/$)
+M]CD2A/L>B4)]R")0GW(HE"?9!$H3[(HE"?9)$H3[)HE"?91$H3[+7C;NR;[E
+M)G=HA"?%L^BOLU!V)6^+9]%?<POOG9-]S("WB&^ST/\Y6^Z&\P7A-]T5[O$:
+M$)]T:B.0GW2/_1<$WU-`?E;XMGVA7OKPB\BKOKWEC%$-!?3\2)%>K_U=I]4Q
+M$#Y5>0L"XH0IM5XD8AT]>%""@2Q0H+PY.8*'B3D3`PAVR2_[")E3=O4T[PHQ
+M?_9N)A(+_[5PD&`5&QGTA_H+9]HTQ?Z8A1?..3!0AVR3`)0B,"_JAX!T<^$T
+M0@&\(=KHP==$UZ9&@P24(C!U\L==V$@P?QL`:#!)0B,'P43*H,$JE2,*_NI2
+M8629Z5H8QA8!B"A(,.<4OR@PR4(C#)0B,,E*CM;J)USF9-%<J@Q/#9>(,3Q4
+M*6QA\@%P;ENUK<]S+GC1<)$S;EGD0E$8</S`K--I].5-O8J[F<$C^-V-7UEW
+MJ^JD&E^J++9H.;"9YB(FG2[07E`B7Z)6HU\T:PZ"L50"*V,?JD,!!6QJGDK`
+M05L<B;U`05L>B9N`@K<@B<+`05N11-%`05L@B<=`05LBB<E`05LDB<Q`05LF
+MB<[`05LHB:6`@K9:\'F)^?@(*W*3.BC160$%8J@$5BJ`16S4&IBP(JQ5`(K%
+M4`BMS"]>Z*(!%;F933HC5P$%;/);^:R`@K=#>?LNBB`16Z*]]M&BW@(*W1J(
+M[80$%;I'_5Q8$5:F@:U$>/`05BJ`16T*_<.BMZ^O8_S/2"@K3\2$2Z1T13$0
+MSIB22\2X?/&\A(6J2Z0M8B%!??DXQ'DCR?)@5XQ?=A$_2H<9J,8Q??91*Z"^
+M^TP[05R4/PC@/@=(G>IBT%>^<=\%P4%<DN17OZH>&FGIVR0EP%R+_71!WL$N
+M@OR2Y%^27(O_QL`:"_)+D7Y:ORV@%'9I:GZ=#@%"8)=!@SBE^4&"27(P22Y&
+M"6L(H-%:)A%"GB#"*$&6Z=!OCEO7J1'D)B>/B)!1>])@9+!?FN0F,,,\$]*_
+M1*FWLUE*X-'E#])+>%[<X^*[Y+$FWM5MZ$ZCRA#EBEO7J1^S!KE?/%3;VZZ^
+MYA4>4.T)1N$>K!%,Z_*^\*FWN5]G9Y'E#UB4;A'(],FEA->(!7+RY)M[M:[^
+M?1Y0]TDWKU(CV98M:67'^5H.;\R^S\N_(W^.Q$5<:WL$KSJ*;>]97=XA'E#[
+M4N4MZ]5QTT13[\=A-]\J;>_8.4H4>4/2(WUS<<(=^D<C&O[?,^O@A%?"889M
+MOX6*[HT>4/9)-Z]2/V<.&5T<P2;?QLG]5(CRA73!3&X1ZJ0I^&(5Z8J;?RLW
+MKL4CRAY)&^.8W#?-!\^6&LSXW4I%_BPPU;?SM.@QB/*$29*6]>JX[_Y2I70S
+M))M_2RO2QJ/*$W,E,;A'[/5EBOJF&&;;^MG?=QZ/*'3$;XYN./F.I\^P*?6E
+MRO^<:FW]K2I>11Y0_V(XARQ_A*T)TAY8Y%+V(<4+#"CG)>P#RB43"!GYB8"?
+M7-&_UJGU*XF?(2)\`YY^08;533'^:.58"^*Z86O&V4%3R%G9>M#S!,B<8/3`
+M%/'3)7@IHDV_OE^9R*/*%ZFDL1&]>J-`N6."*JTA,%,":*ZQAA(V_PR3><DC
+MRAT)&_N6]>ISW(_)9S@XDQ!=Q+Y$#F7?2MY%868<A]!@\@)C@X^"Y')9G8.4
+M0##[,S&.,KG@%V$O8IWE`0YP)F3.&XY(Q)&#Z=<7!7*C,)_0.>3O;4O$F$:F
+M9\E>ONY2]I'<!8M75Z,V<4W@(10N6T,$HD1)EL1AT*:!,EUS$DY+I.&0*]W(
+M%0\8+I:\2)`&;:3D,UVCK7F',BAM^7$!RY#A,3!P!BZA.!A-TGPY(XN3O>0,
+MI8B9T2/I20#$&5)L#R6D";%YIF#>)EDP/CZA,LQ2S!;30^*K]X>.0;48R$]W
+MG"E%]"C=Z4X,37O%2,H8(WCE4OWS&I0A?9ISA$T5\>LI_?KRW,^_R*`Q_@<$
+MDB'`0Y"C\/L")NY5DCSI,P3>FZ<DB.0<&E(YEC.L*$1XG"-(K68FK"PY&5FB
+M_#-C;3))YI8Y8NF?*H\QX>!'@#L[L1'5[H"'.A4NA85YNH6T11)EC1R09)A5
+M(V):3B\2RO+BC$3C%W5.'WB6,N-I.)QMU#^-6.NZM"@8]O6?^@53Y.J0L21*
+M"RPI:I$^@54;G5`AR-1F(3E",K<UX)9L>,B=\NPK(C_8N@NW[=`4"+!DC=A$
+MX;*&(D7Z8=\E2_,?_0!`$;_IW_W@;I?^[*\*99<L55,-T)S-W98K-+-Y7>%O
+M\OJ@?XBI<XNT[S_W!8?@_I@P%OQQ!/"OA^`?ZY^@?'2]PXD'=!3IETB_K"+A
+M8>C]TQ_MUSO!N5GO`M%HEIJ5GW7++6:T#EEGD8+]&(8.ULVM#BP50CVA6A<^
+M'"`_C!\/5Z(J]9X1MG<!?-`-MEI4X(?B_+)]8.;,140C7KNNI0(W;\>CSDUK
+MZ.,VM,CE5CFJ#M/"S1#I[2F1PX@*R-(/U>L`;:@/'Y"3%";Y=/!?(+7M/$3V
+M[3)1-D`%,]45-X2_ZU:84+%I0&`_U-I<`2:'N%I;NT`2=YD1Z\Z(6SN`Q*9I
+M@)?<PHJ@4D34I,!X'"^>2:3_-[(%TV$+TA"BA`''(5YBP=&0UP`F#,P"2=!#
+M00++Y;K2NL$@\@'-MXPQ"TX[JA#1'?'T`+D2*^@:RJXB5PF9<0$L$L>`"/`-
+M@4RSG6C:O.K3Q>U280(8>YYTZ"A',7\U&N>=%_8_BR?HJZGK;0!5#H=%9MX&
+MRZBZ0(2_J+"I9AS&M#5T]/0Z3'8RFQF*Q%A3JTDSZL>E"?_&X-2F3$T82'Q_
+M"-9!(Q"Q;J0=.R@:$8MF;MX0LK.H$GJD0L4CF8&(/]KF)'34UEHJL:$ZL<,L
+M;2G-Z<OM=!6W.#'Q;+:A-!9L"(]#TR-#V./K20'YP.@L:MB?,AH1$5J"?\C5
+M9&O*9GELNP,9!RD31GU%D/AN#6Z*R9FU)"L15I7'"5##NK!@U]@!8/C/0P##
+M1$94@DT7"'T>CKTDC=%<%D8.V$%F>J+#T%755\B^KDH2!+-:'S;$VGH@#L1*
+MF"#'\?/=]HY<K2NQ6=>:M>]<M>0L+D7?6.:#?B`]H5H/W++52SL5.5]:=8%W
+MT`CE^V7Z5UGI<1Z^!=8B8-_UR_WB*Q!:#KHOA@%PR8B"OM0\]1W*KZQ:9V*9
+MA<ZW)B2>"!I[*T#T[@;,1.0=4J1-.+2^X`$(+CC"0]\E:<V2T^;J40'=6M?:
+M(.-N(83CB+POP1-0E2\RDB$UX*5+#!SW:2@?+B>I79I*V4SP'FN=B?1+GKM_
+MY#!?K^S&'09-@M9PB#9]I)"NMDZGP\X\.\%5'$V@!-P[A*(4SM7F#G]U@1ZO
+MS,?(XDX2A.3("P&<`3>ZM%11G?T&*1'IJ#X`?.M<ZPTPZPB?P1NMBY[%@FG=
+MYWXCM?&`']X_"9>`U(`_)<!3T0L#1!_2I?0W6,O($/6I=/P<D/TA&"&P:F/=
+MY`3@-L'G@`I@4:^:NH!,A9-_-$(0GJ]"0O@54$%I*&X$J>X?DP\\T<->;/*Y
+M2'YI^D8^:4C\A(##B0'4_DB`G"!;+.W?3V;N'D`:F$BB`?6J4!9&C7`HB;A9
+MT&X@2P[M`BEUT`='PX_/+7P%'>Q()4?D1U/3(C%Y<.*&Z>#ZB`&IK\M5KF-S
+M$H&B]G%=Q.M,44C!3NCX.O2/T>&7:RN*^)$K"=3D6I`HX`]3#'P&2P-!X;D1
+MN>223X?DH[TN:.,"N=<S#O*LYX$F=+S07CF%\^;G^2:9912NE^3-8G*A*`WN
+MPZ>"]`E1H(L"@AJ40LB?J/UZ)Z=`M<\8T2HE2('`,4VDD@J\$)F+*T!V04HP
+M=)D#!,%>:UG@H][8C5%$'K4DN[O5!(J_+,64MFJQHN!?T\$5:&2J]"%QE$*[
+M?T!R72,$(^("S2=BT6,5F%NP\?1;XP*DU;/`6PQ*=8>S,5^`O#C\G@_G`[>9
+M`Y=K?GLE-5EUEU6A%*J1NU6\+M`=_B`K5<$5RFK3;YNLPR&@LWYP1E%*BVY`
+M:N@/JM@]F%'<%<'XVAW>R4R5)B]&P,'?2A5ETP"N7=Z](T)1%_3%%NJ^9IIJ
+MB,=-HKMNK<Z=`3/G'0_&^*8.`P;E``#E``"```$"44]A84@A8`#==EQ@&RUZ
+M5P(;"X'V``3@Z0CM@P)=-\$R@!4!-VAO;64O86YT96LO=&5M<"]B=6EL9"]U
+M;G)A<C4O;&EB87)C:&EV92]B:6XO8G-D8V%T7W1E<W0*`Q.H!*M;#]\Z`(M'
+/428#!00!````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu
new file mode 100644
index 00000000000..c600f025395
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu
@@ -0,0 +1,345 @@
+begin 644 rar5_multiarchive.part03.rar
+M4F%R(1H'`0`S!&6T#0$%"`,"!P$!@_:`@`#;[#5T5P(+"_W#``3@Z0CM@P)S
+M="<U@!4!-VAO;64O86YT96LO=&5M<"]B=6EL9"]U;G)A<C4O;&EB87)C:&EV
+M92]B:6XO8G-D8V%T7W1E<W0*`Q.H!*M;#]\Z`+YO1=#5A^0(J_-LW+!*WYK9
+M<RNF@E7H<AV@H,Q@7^P9NSGKKS$<R=!K\,;_26>9Y-S&=<\T5"W>)8SVKJD$
+MMJR6)7`.ZW:KJ>&(CO-FS5,$7MTW>#/&3:T\F#!BLLQ%Q)W8`)M?:I`7R_0#
+M@ZP,N:A8K3^REFNF;<\]V[WJ$CSVBZ;4AF@IDR^?D(\BTKJ=ETD@^(',Z9K2
+MB;NSNHD%ESN"<`A#UX?NL$)%#JU<:OU%)YU@7S,&'X^MSAP3SNV$WO.ARIE3
+MN-P`8'[KE]=&PEM&)TO1SE+I7QM66TF>9;?W=%]L43,4*KANS,I-&\"=8=*M
+M-^F"!%[/.C<5S-HJD7K1$IX)0<`H0CJW4<]HMACE^_7[-;!G8>BU#7Z[7,41
+M&[K6$]2,QP2#SR%N.`YA@53@FF>%Y6R"IL6(00#RFV3.K[:ZE-Y'H6+[H\S>
+M>SUP*)+J_25ZFHSX.@]GD'P`#<L)Z#,8,='=K-K+M[VF[=P@VZP)T_J@<TFI
+M"F(;&D[JPFBT7VILJE]DR9PJ4K@WG^Y!;A>OKEKZ$.VJ5MQQP4PDWL*I13O#
+M7(FSJ8T"J@U*I<8(YE@KF)9$V(0H#B>!7C7`<01^0+<Z[*37=JP"#M>E3@'W
+M>09?9!-`9@F`(\BP6U*FNPD;RG2'5&F,TF>0C)[<C>?$'MHS@F$K+IP"1V%K
+MK/*2%]]:<D2K\",-&"!24^;+$L0,A5Z)9\G"!2@:S+`<RO.@U/(!!9I+8%SF
+M6"7`C?NX`;:F3PPDQFC`[-,KB&UP#S`Q5SEEYR"N#[T@=!D>;F&)TECX0;1D
+M=X96![OS+-EY[RF\U^98-B9)7TBFABBGM4?F"O\*8V&5S9;K$+ZI"SNKVFT4
+MH()$;)>0&7($'AX,\+B)XJ'W?%?>EKCF`E4Q+U#(%^'7&.#5!9K9[L*:]*9V
+M<!-1-2FFO(6:U\-#0PR"\V)ZZ`Q3R+K"S.N22:IR=Z6S5AW<TPJ?5.X&L4LU
+MBTL?'=[VYRNK1'IW`UK#*-[;MG\.U$S`3X(?F&8+_&J4-P3.*M=O:4_5Y9L%
+M<]Z!+&-@:U3-JC,LL0WUUPX(W&$9\ND)<EQ<$A6IEZ&0]1=579H(F7<SW9V;
+MJVQ56W!NK=ZM*B1'89/4#",0;%K(\\UUGIH[[["MV(+?BYUH+=LP$VF2KJ@F
+M,2;FA*<5'@T%"Q+K!F6NY%ZZ@&:,O&@^"VR6AL3K!]-)Q9&:)+])=0U4(7<M
+M('O>6)7#8M,-2D1<E,M-P$I<31TU.T(H6\&/.?`(\G,E71J'^\N:5185K"WE
+MM&7P1HFX];9:A4NU(VQE4Q9FX$-77=4O:)1=;%JWF26D3"_NTQ]2I:Z4+$S(
+M&5`M#N,Z(A'-)UC'>N9G>5M4M.TX#?-D+2.DC2R*TJUHHJIH2QJSQ/!9"Q"8
+MM#81!Z?!YFS@0L?I$@RY4[OZX-9\O,2&13GZ/&KZ[KF,)(JS+2+3.X/U%@L+
+M;;P5IH8._R*P%9K2@6W]6"]P(KD!:MU;!!)S@K"@Z(,X[P+K[0`CC'G2G@YW
+M5HOM!8\VD<C%]&90S"6C2;<&2CCM8,`NPLEBG6*!$3+O$[<`XJ@[(#:2NY&&
+M<%'=W2P06U[04+");PX[P1,OXBW'@(F#40E[5AUA2#VV.7^J6C-6M-`8O2[I
+MW?@03Y19:F.B@YU!5_B.E6/!'35\R!!)M[4JA*-*K\C,JB;55?2J8*^-J_ZJ
+M1NX]`JLA=1'K%$=^,O=?=LV@CMW>\D!7I#;8/]B/7P0!4(O<?/$Y1C@FRFS2
+MW'J3?0$0]G[@IRXUG+R\TK'@>`K`&9IB3"C#-BTCZ)(+,$I5@:S9;X@E/11<
+MM'70B^I3Y`>E"#\?4H$70#(<]CE=^M,[D.^"9GA,P547UX0#LB#J>%7?KUH!
+MG:\7$Z.M4ZQ9R9<2,.LH:XNT%YK!`#(>]J&R%"07\@W2]&>&)=9,/H12)KH)
+MEB!$KAH(MP:,!]$+A%XT89IFYYRGS@P.0C0\S2V-58X/2@9L9ED\%_>&`R=8
+MB:5>H58,@(42H8<Y;1,]NW>9](8,+'3;N]"UZ>\N>1['4BV6X6E0=%[.5##Z
+ML2=Z17])-F]FB2[WGQ&Z(2^K=PQB?^69ECX*,A<,W+^W.+Q?TN)?;40"!"S9
+MUEUQ@28<80"-)QF1H^9/-WY4*)^#&#K#*JC0*LV#YU+3<C"XO>U:>.K1,O:`
+M[21AH5NH?YR2MG.H"(,B('KQGH,!?;)SIG@GE886<>6AW/E;5'8&0OW$!D56
+ME$HS>,,G#9`@,@.X)P?4D,\[_6X%(>U!3]4(=W]H56Z(6G`42._FNI].#Z>G
+MD:ID=_J9&G/XSZ\7\Y.(1I!)OP10=[FMRRLLLP9&57W"<M&.]<FVRY8U*1PZ
+MU0$;B;9RU%(C%+IL3SP`#O6F'##O7DX(8-$+!3`O[ED$1G"8,A*18;J<`CFK
+M0UUDANX3$F3P;.RO=GA`[P+/87"S($#GC<*17:"\)A"PJ2+Y)C"FF9LN,H@%
+MH1,YM.*5JU9>=M,8O-IN*!T6"!VAD>.%`,CN]5-*S[M8QY19YB0)L$9=C"7/
+MOY*B8.J,Y^[UJ>04&9OFIL_DU,_203O#B;PV]`9N$2NG!R*]68U-6],>ELXJ
+M;D\094!/#8IK?QX7K4VI[VK5![$A:W=.;$M2-6\OB%+`FUA3D2_6^*=M)3^#
+MV?N^FLW>D$(N8_>>$J^Q.[ZDW'(D+MWS1W"W)A3F>FU^B-,.Z+E?U0D\\+\>
+M0K#*NA`S$^(1+7/O4B*T*!+X1)Z[A[=FYC3%H:ED1BYF+X%5C:!7-Q78Y*=W
+MZTO)6-+GH'?J.0H]_(9=9,Q[E)K&CJ!G&@!YN*)C!M)9[51'6*R@I*+%Q.2O
+M7S5KY@A/8Y.96'@@KQ0IN66*4W#P">!W,$%'DTRAUB952&!9B_=#D6-:^>RH
+MQLKW>#";^29'4CK(S`G=WI77)N3O:(.8ZK)W1T9.[KQF$7)D("]*Q>U8CKF0
+MLL>7C[=-:*2"IA>9/E3SH5@O/,(G;P&Z_[A953,B,;^0F1A^AC?77("WZW`!
+MSLXL%+IQ=U4K+D\U%.E-W+9IUCA.$NN+=0Y&[A)(CRE[3:)^MJ?V@GA3P@9V
+MK'%\<1=8V66E9#"[U0Y`@!%>=JM.=:#1U267B^;5E(T/\((;8R#X8EQ\@.QD
+M8QS>%%@P?P8?X(':+/O!BN(IR?%?HUZ1*G'D'G,T/D3M:#RH'.'(SE"6+$X@
+M8&*9-3B(4Y7K/F([IBB>F2[]$1N^6B@T9].*6E%[A"_"LXW'!2#5`6X`[UEY
+M2TN[\G3]VM+.Y?(91W`R&5#_+90\`+-A.KWR2'`3BR\W2"HF]]I:&`D8@S!#
+M\7MSYJMX!YK>OX:_1)1.!U>O21(<+BJI*.XF:6@H@92=QYU51S(VW/+U;<XX
+MR_&4;=VS<0F,N5ACFXB^``-M5G@YJF[T@N"!P@)8P`2W+`1!2_["UX%:<<SF
+MOW(F%^0(#7FPZUXD?L+7L`V#,WMN+!:4.^#1#"+Z9M9,/O(3?(!DAAX&L683
+M+G-ER^.6/1GKH>3$5[KTN(70#`(#-WP.I86GE4K'-TJT\J]PP>A/*.8/>(`N
+M@.E%K$8C%^GR`DQ\ADFSS-M_J3R6N&;P9:E*#/Y-DJ\Z#()O-2<`YLE$X!I:
+M>YY?A+7HZL9A8ML'GJK33K%!2P.IH95&+_V)L6]82(R0#-P'M"HAZ^F=C>;M
+M>B8A*)?@BV#S@8<]WU:1X\$V3#ODA7R&71=FM>3P[E`I&@H,U('HM5#K_S+N
+M4%'81Z#IV@H<A)B);^@?;%1]F8BYVLYT8O[1*;E[\*1?.'+*@.KT+^3D5J'V
+M%IP<A@S('FJ7]DH"P/+S)S;MQS]7:.L#-!6+1AA&+U$[&9F<<[B"4/SKU^MK
+MC;52NN8Y8_;G]A@<9/`O/4-S#W8F<9L+ZIB[#BHOK5_-W!GQN$YE?<")0I(\
+M$1MSRJ@7))_5*Y#.+4E395?_HZ#A2Q"&!F%J;K39>.>N#0;2'@A($V8ME=TJ
+M>]29$:EC[,MNN9@SN=QRB5%*QLQ%LVEC\Z=9^59R[)VX0?]3S@.63>8WF>-&
+M#I?5;D*U7SV56'_FO=NZ@CGH']8KIQV+GZ5SU)CY#2W/GEOU'GD]RY[='!/H
+MW0_U%<N>TM<]2=_/N>.K?.N=XK%^"Q:K%TR?.Z&N=$L?X%$[P;GP#Y#2^3<0
+M^65D)(R+77LP-&3@_B:L^!SG]U@KPZO(I0VB:8K0OBKOIO1[$?YC67?32S24
+M\+A8K6+1X7X/"U>%_@8_O(SN^.1T;8?/[3P.PHF8RPN&QGU>;=8P8Z@<DH<B
+MY>.@7+ESM4T?6I?>#Y7U_7FC_>%_#_(JOVD+YS;;*X]_R2FV+[Q7ROI^N]('
+MXO!+W^[*;$OMQ\U(_KU1WUNS+&R&<.<J1<FX.B'8%.D+[MGYCB?7>B?">$6V
+MQV*:*=IM'7-32_\FJ*[?_'+,UKYMTH^8A?E;54!1',K^F5_X[992'S?M1\QX
+MS-$M]1^KT_\IO^4?YQK(^8[CP_IU'_^1U@/K[AL]/XGTZD#\93U!?>_7^Y)4
+M_YBW.SJVCKGI&Y'][_D5%*?G6PCYK#>+QNY)_Y'9I?7S)!O^/%1[_E?XYAHY
+M'YYXH^8\?QOH.2#R5(/ME/3E]L/GDQ]>J.F/>SEW@'*T/@++\%/.I%QS;(=`
+M$+/^=67;=?(O^8$ISU&.9S;L<N^\UUC3ZSB/M7K8ARZH!T^CB;RGGBS,:,KY
+M'</'INKS_C^5\,?/A1'S$3:1Z<7NJ6=.L',)S)V-?W2FS+[97@VU^O5$?>D[
+M^Y6=9L=)5)H9KJFKT%P/H_AV@8]@;Y'4H&$F'>0%3439ZFF@)&SM=!6@R`.[
+M&SFX\5HE:E-5DXJA!I\`=3@_`2BKTDP83]H]$/7E<YSLWE:/&I^0\,WB-'9@
+M#J<B?@'GT5.;Y)09%.L;`'M6XL`9P&5C7%JU.%-5`L3BI,ZQX3P*$=[Y5#)Y
+M,E:F1L>$C%B6'0.#H$=H*9K4SSL]+35`A3H7N6I>`<V!#(,VI,XA,=(WU&_:
+M94T">JICP,V77J/@4QQPU..HY'4VAJ:H4V.*NPIJ^JJC3JKP[_#4@_5J<6L#
+MRF/4B`5X"\V/$0)3,B=P?AOHIK:QT01?7'J5'F1AZDPM-H*BHL0]-R=+@"JH
+M>(A(*R'^),M+T_$"'H&.&ANG4RL/PAP";A]IE*8K06-6J94SC4JF>Z=2I:[-
+M28!GONAP>I_(:"#H2`?;:*HLZPXX-)P?=H*+=*,/?76AFY;&JT9A5`7A.J4$
+M%`U:WICU*TK4#.UJ:UQ;&M0@G2)8R6I9I3A2T$936%>)!I*.INC4UN^8U*DS
+M"0*PP;#A5)J9H.NL%NK&Z=2HGC.IE49Q)H8K0G%/A503J8&*U*6U)=K:^G3,
+MTGJ<$<9U):C4^2I2)75IFVRKQ0-'$"9BDM3<6L!-'J6I4R4::42"ID]37T5(
+MTKQ-:E,0&-0I?71L5$FO8=)7@6+47@E%JI1D*9&B(+(52=3(&F.H$H_KEJ9&
+M'X9N6EUJ\-C*H&3;&K>?[4Z"Y:D]TEJ53I44"-;)1YB:01=5C@2U>.-=HJ=)
+MFL:GW3*`[JU*4U&A6"^M`[4JGG5.T`&EI8'P`<SJ8_*'A^*;`Y").:YQF$E/
+MH*I/AA(R8+>R8U,-0T^M#/RFL`?-$X2H<)$?1V]VZH)"O8Q1P(.I$]&S=8J?
+M`1BT.IZ812JFJJXR:0#%PI,CZGM]M3V2:7[.U8HK"314;$K/PIYLL=*9->8%
+M_=^INCF>;T@F2KT2=4DI-(P7"`2-4C5.J6ZE$PHBJ%(D%!(#:AEF<UXB\%>%
+M9A)(6D4Z)VF@QQE<HMF(4')HV:E%U:H+"3:!AUS2EZF;U,K5/8I[,ZQ2J($V
+M4@)Y`2,`4`668\-%#0.T(V.E5P=%GI#70L55'P2%;6R>J#`-4)CJ`5U766=W
+MZFKIH54PYCH@L!J;9:"F85AD]4I-3<I(.XMDIG#+L4,U35A"QJE:7+5'0D-3
+M;],J%.UCH@P951=9FM'=VJ.XSJ<F-M3O2.WG32PD>G20%R-$`4*=A<]K4ZX.
+MO+1J]:2[=3?`R/`\J:VHLH["=0Y"3ZFU`Q:U-J`KI3UPD=:U9WIL?KHL;#MX
+M;IU0MH[*%5KP.)W$5-=/FU+G6I^'A,..H`@2B9)Y62D;I7J4%'XG%X]E6=O0
+MI34!U>?BM759TI-FK.:?GNJ/?=VJC&W$)K**'MA7A89+$/%GPIV+"%A;L]52
+M2RK([>]JD,+Z6C`C##5(@JSU2*#,P3+:FJ'8U;%8IK54JNNV\;ZI%PH23<#3
+MH$QF*-+1W<1JC)II!5I4M^D:HF-:Q95G2(:`U,]#\07\86'35/475J@A2&J:
+M8;'Y)6"DNP%ZHLX]8L[*%,*<YV<?V>02RG",7&CLJLUS?F=56RRIE5-[EJB5
+M)FH\`HH&2R"3`VP.FI/5388NJ4A)[)-BP9%J\0N1N38!"@Z2K>*2JQ8!@L-!
+M5IID#7*F9NB],HT&7-H/$9:;^T30,85813E"3(-``;2V%8J[T"1):.4:O6DC
+MTDJO!4BPF-7-.J;4FY5FW435N"1:>LK:A1T':[T]J8"+AO(,PCU7Q[IU3YQ?
+M<%,%$V^!DUH*T$SH#+*U8KTW7JK55H)&PN)T"O70I.2JJ/IWBJNCZJ5YX@9*
+M.P)<32)2M9Z5-5?C&J>9':;FWONS51B,WU6R7&M5:N0'R364M*=+MHKQ=?F2
+ME=4VR3W$+H0HV;5RF41MFI(1VI9L6;,7'/1)H4.GUO,LCJMJV*;(DQMI+,5!
+M$AMHJWN/#J(@Z3%5**=A4/0UN@KNF3`!,[-;5*)K4WC&K/KH*9K5A,,OQ9Z6
+M*2$-.BJ\+&,G-<<>UWPAF5Y&)$DR$ZJ*#6JP@E?(6%1D=H;/275A1%695/6*
+MF8%5:6%A4IP(8;#VI4SC^J9DYDIM8*VD85^.DFFCXC1JW"3!'XDMSF*TL0EZ
+MM!+"9SH9T20>Z=6F!MJN/TS!)W5JNU'40J#O@UJI/"FM-I7"G^HI&L/@FU&N
+MW!D)-,[Z@FZ":`V_=F+KFKPUYT7TGP_72/697U#P]8*\*N<GU:Y]5\/*3/4\
+M_U#P[V?5?#KO(P/TWPZ62#QE%=&WZ6G:B:1IQB?J?AR[^I^&W&._^K>&QJ[_
+M%;-]0\-3WU7PT%2,#_</#)/)P?]P\,/'&?%B[]4\,&$CRG_ZGX7K9'PL7"Y"
+MZ&0U=?CY))],\+GH\+:,AGO/U'PKB,V#_T<21\Y2JN95FW&(YQCCS95SD6Y?
+M6?KT+I+"+UA5UM@X1[8SB5G7KGC;#5IW\RZX<?>W1UO&?GK.C"S/SU?1@0FS
+MO*.I\S\\KT879^><Z,/V?GI^C$!GYZSHQ!:^&V"-X3B;+KALZ^/Z,1&?GU.C
+M$HSKW'R7U&$JSKUCHQ+..WW)=4NS\^]T8F&?GW>C$RX]`NN:9U7#T8O#/SZW
+M1B\N,E+EU7IG5:71B]N+J^D#CB[;XX1U(%]<(ZD#CR[;]%O[A'"=?3?WN+&X
+M7+MF"AT*=]F69I%>N6<*53>++')*GN].,PPC=E'O+W$W.D>S9$]@6=04W-0_
+M77:7_@%3;YKA>/=H?YC)3Y^*\B_\7%5#>'VY56%G?E5:6?D*K`LK.25F5`'^
+M1Y\G2_[^=PS`OX>+K/R]MWW/V_"_-X4/&5;.MJ8W^O-TW;X#(>9<HO\%41WC
+MB:WCF9'":WLR@_&LX\;,_ESE\W'CY@<7'#7[^$/7/V_8SV9YCPOLVH(J\Y73
+MAB+TO-]7^P'MAXOYLV@[KNK&<Q6S4[Z#\O!YW]J3XU74N.ZI]ES7L09=((]X
+M_'][\F>[/T*D17#_?VFP[CILO^9QV>YF+3B1AZ+S1]3N''2>-U_ZG'ZX-$XO
+MNWS>Q7\;)^?WG/?$)XF=[@J+8Z/Q?Z<&%V-EV.\U<7UYOS\5?>XS-'_&:F_.
+MT/(5#'S>M3KN/;;&N>(Y5KRXW;XL!!KR]_%\_U_!6R49'6ZANGZ!H.KJC.(Z
+M.$DH=@@CUSK^*YDA>>MWJY5KOTI<24F/7H89)2XF[B+NJ#__#_UPO]<9P>'Q
+M??X+SA^YO]]P-_[WN[[A\/I/P9+P/<X/"X`_+J^_>^#XN%&'P;X!/N<#VQ^^
+M[[F]WON^WP=_P-+;:W0<2QT7NT?N\#A_!P_;$%?_.WV]]SA[W=;SW=U\'M_!
+M_WMX/]M^'OMH'L\/=;GV_=JNNWOO>W[WP[W><+;^X(3A[OV]OO-[W7,;S=\#
+MVN!OOB$+&'I36EZGVP2']CD6_N![`]/;X&SS'M>T))NM_NA*/<]3A_]Q-[P=
+MY\.\$R>Z"!'IN_:V[WL-#ON%Z^\]_>"9N")B^/V]W[N\W.^W?P_!_S\&W\^?
+M``"L^#=^^)1[^]]G=;O2[OL@7(DOL^P)JW.[$\>V"CV_"XMSV`A^_B>]*..*
+M77Q>,03P7:N2MWI.X^<5-N7(/>&O=`CCR%+]UQ'_P-HYH0LOFBY:C5^&ZXES
+M*)L]COW+[AR3[_X9^N*Q>JD\(^P)3XQ?=T@;GY49-9IW\KI3KBF*!?/!][Y&
+MV_E/>N6P,:=7/7ZJ<\5SQ>,`^_B1]@78SPN@61W1@(%OSC8'6;Z5<?^B?K<H
+MB"G8%YP>%!CLB^%=J35`?$;Y%%M[Z0]>;VYM-OC^.!\+[XW7PN8/$AN.!#:^
+MQ-+F`X5`.&'Y[`\:\IX)A8P3^GZB>8(A5.TA#A3B'NH"9'&29![R2E,9`C(;
+M$O2^W-ZX$:3@N%>F`S@&X2:L>>&)[4-F7$>'^CH[NNI^K$.?_^VQ^KX8^OZ:
+M'PG!\.OL:65_WW%CT>%_AM.YXN7^3@K_(CJS?Z\KWU)^[O8V:CN2$Y_/9N-A
+M>IO8:CQ_+S^SVO!E7'EY)QV5CC_V_RPFPI?RYQQZ_K\KF0`=S4<WUV&^1X*T
+MMXO$MX8S%#?\+Q:=QU'V"%\W!'6?JA[KG\_2?P23717W@]/W"(J>X\OC\%TO
+MW>BOG8..]Z)QAI28_,X]/O/.R&G<4O0^U5473O<\X\3&]CC^8R7EZC`^5\.H
+M]7EYO!;&5W?KXQQF/'[/RMGHOZWOI^)YM6X[&RZ'XN_J=GO.(Z6^/]F:#,:R
+M['_3/:CJGD[ZO<_D\CULCN=-O8O\^+@]]%W5YW7$^6MUOR\3=_+[_!XYQF_S
+M7'7_#B_'Y?)_H_Y+(G1`@>_EB/@_'SW@\SX.%]%YZ]GM7&HU&DU?,>%U>IZP
+M%MO77:N-,X[.NM_7U&LL/N]*X[G99FDPDRXR_/^")HVV.B]Q4D?W?JO'?V\O
+MW5/&C4Y7D,YQ?#1%CV7N>3SOZLCE\;UP20XVGWN2L,E`IO3\_Q''>0_Q=_E^
+M<XM8X_1^7D7?,=YT?G[-S?_<X76=9B\9,]/O^Z<9GQMC[_1]9@7'_.!!SC*6
+MN9Q'6]3ZFQY7\^RYJWW.D`U^YTX^_$\[K/S\KX<3D^TH>2SO%:V$5[F1R*SB
+M7:PI^9V%3YML4_;>J%<X"[,D>3DT3A&+LR4;B.KM>QP]G)J+C_U-M\-I-U*W
+M5L2)_ENV'O$L79A2@?EZ9UR/V<<5D%!\-O\U0!SWS168YTW3V-G96=I551NF
+MM@.Q36>C'5,M<?7.M17TU6'>AT%:'-G7V-E3:"TT@DM?H[!/DIXQM)CL9=@(
+M?52X<6-CH.HIJFNL['J'%4'6CJ0`6FCT?4'(I%Z>OEO)A4CVE!(=G]2'3U;;
+MK@AMUYC)=@K-=7YL]H+)ZK[C]3!R'8GZNFRI#IL9CJA9GIQVY=6Y2/8NC;J;
+MF1['SDNI2I/J\QOV&&UV#M08S'T6+9ZZB8Z_J8['2NCK$*Y=-T*\F`^-Q(^T
+M]A0I=4DEV&!(`>.BX^0AL=(2K'8I&N.+21#<>6F/+7'EICXN*HBL.D:1@BT!
+M&M&6E&6M&6E&6M(6E(6M(6E(2C]13L]7B)ZM0/MM4!&+,ZX_:K[,+C*.C:]U
+MT&W3>7&NFL+ETQU(],"2;RZ>D0N@N72G+>!J]+<NDQ+HZ2'NCI$IO!W3T@DU
+M!*Z.)DNCXKMZ-<-]34W*<UD^7R]-E\YEAL&/J96P0*DF#(ZSFJ+*O5U,`;RM
+M8!<MGLX)5F<J<!571)E=954W*YSG0/,PS,N8RW-(CG.7RK4W\KRW,93)\M3<
+MQRG*<WE^<$1D\IRP!&^P2)3L%?,EDI#7XD'8#S:!8ZSG3L%S6T7=?7KRM@U(
+MV"V]-;6P6;;`[/6SA^2,IM%L]?KMM@T:V!N,;!]A/:[K8/NK8*H)V#TC8)/8
+M.[-H*Z.K%@@"RNX%NS8+$L]7(<;'T>3'L&[N,S&9^,[!T*[@;ZML%R4[!^EL
+M/V=@\S(0V)^G;!?(]A#ZVF!.PBQ;0;':)#&P=V;4P5ES$C;82LR$;BKKZZR/
+MNQ6YD2)>W'"NN>F\(K803MH7^Z[!K%.PFP;#RZ4S)V$L-S(2GMFRI*MA+DVA
+M)#8.`G7A;1O&=@X8WV$H+:5IV%)3:#/851W(@!VXG<8DNYZ)#86_`'8V!D?S
+M[8.^)V$_+:89+MR]6PN=N2[3;8/1Q]A:<V%UV]=LR>PQQ2NA=TJ^C;!]Y.PN
+M9D!?1XK_SM@_BGNAYL8?S[80"W17&^D["!K1W0IJG8;#-H/_P-A"$K88&-FC
+M]D73_XVPAH5L.(VQ!_/-A#ZSL.G/G-OO9)[,`/S!;W)B?57.WI;W6QC8;#M@
+M7YYL(UV-AWZVEO_\VPCM/MG1M/EU>PH![#^9L$7;L)%&-AS0V#KMV$E0V'>;
+M8*:ZY\3L/?VT;=^PE0D/+N=':E?.-A+.8AN^9E=PG)\N=-W@AL^N,;$7+YK8
+M33IQ)]A=TP27=Y3&P_GN\-XUL)T4UN;NE?&-A/));$(2[;Y9)X7-6Q&3;!DC
+ML14I%BHQL2@(]'Z?8WMM+F>\JG%`95V>@T)\1,2%6-.3.D2BPN`%(JF@R>4S
+M.('<UC#VKKK2@/V2QQ`QQ4::P'#6!S4=17&+V.*`Q$LVDTD\ICBP4E;H$A#+
+MFPK;-,Y!O%0&K^/5."O$77IO.E!4UC&2W5E18R#UB0JPDR$T[,<"/T5.<Z@K
+MU>C$P,"P,[+@#V:>.N=0'Y<V3D^@KJN,&GP]CYX\5H=""BM6GIVA33M1R,.F
+M9=_</J^,<R'=1;LV5\Z&WY))@BB0V"I;;95KMNPMFW62]&WE^W=-N,XCTY8H
+M]_B\6O)KNT8V<GXNYUXV<XKQ=IH?CO;C'#E23UD^XSO15STGLJR]G>;C'R+\
+M;1_TA1Q9$O_`FXV.E<HPZ1GIBCB2,OO6!1BP<1M'5TG_I6$IH>KP-QC9O+K1
+M_&?7,R_*1<=A+C&D>HTO!=/91]EL7=&RWWOGS%/_87&9NB;<<^WD$JC/:QLZ
+MC%(Q@]6CL:^OP(SL-K&Q#^9+^W;5?VVRZ_<X-&&]4_8-Y?=FRX?<7';XL;/;
+M[EMQS$GT<@W4_24T1BH'([+B_Y;L#UV_'SRB4D9?MBK;%^WU&$]H?H%7H16/
+MF+T]1EFD?^S)_QR_E"KBDLD7I]FXRUVA^YD=EY.XC=ONEG)2[4G9,=SQNG_A
+M,BMJ7L=I'RKQ"M\RY+\_BN*;=KS1G+(RV\:6[MS=73`^`N*\MWQMG_+H[?[/
+MB3O[!>B_%V[?LB6ZFB]&'+M_?WI+59(O1CBINC_FMP2_#=L_H>5+MX/Q$L^X
+M<%^;FZ^A+J7XT*BOT7`,-:V[7]_(*=R7UJ[VP-<O+?,3_+7;+_WSQ+F7)>CK
+MRDGN5P(3"[RP``3HJ!;M@P)=CGKX@!4!-VAO;64O86YT96LO=&5M<"]B=6EL
+M9"]U;G)A<C4O;&EB87)C:&EV92]B:6XO8G-D=&%R7W1E<W0*`Q.J!*M;T74"
+M-XF3%E90!E14,B9F<$AHNY)<D)@+D`@0"`0QPQP@0S0P1(!`3#$R0@2&*`1)
+M=F%,<(!"$"&%10%%14>T1.U13)#`@**D5$14P1$5@P$@@)`F'OG57*P<Y?.7
+M=R`]^>]^>^?M?O/K[](DOE<JMXZW6ZQ<Y<?\KO^"5UUOJMUUO=57.6!)K3IG
+MR73\G7^@`0`(7^D`"$`&!?_2`$"`!R_T@!<@`J+_Z0!#0"]7^H```&```!/^
+MH`JP)``8'_U`&:!(`%@_^H`1P5`"D7T4/$^4Y+UZYK^.:ZZ+C]L'%)]\,I/[
+MF58*@<,NMRYY-\UU=7%SJ0.BT'<.N2<A9W5,Z8ON5)^DV@%PLO#M#37Y(7=I
+M9<^-&0H.`)EI=GZ"\5)1!OG3R:3A@.@N%6E#,;F/H35"8Z=):">5P6)I+.2@
+MO,I3/3:6;S\U:>Z#/)2:;7E<+*-#P'Z,HUH8+W$PBDVCSLT(S47P(#JN_V/Q
+M\)G!*&^F6+PR?17JI7O:(_)XZV6NT1\;9BR,NSSEFSENMEF+WV>1S%GA$(F^
+M*!=ZOZ'N'--I;5,ZDI-GI]E7ML^S6.VE@R,=MM\Z?1)7*MOF>FY4U)AU".\`
+M>K<GB[:/5ODI>W2U.^EV\Q!#&C7Z4Y#=]5AH'E/D%J8'&V7F+X75W_RG*#?(
+MV,]5=3FF*-RVZY_DX;97G<1$"NBJE6\`N_37U#3.E>>+_C<`OJ!4%='=TI,0
+M=2*08CGE331WFTE*]YNQ:O^.6@+8M>;R^ZG'+LLNTV"QOV]J/U1T+Q`&+I1I
+M<6!C5O?CE.L:!'*2\@!D4LDEE4H]++)9=*02S*4BH%L@&:6:2S:6>6EO/@:!
+M+0I:)(S`Y-O0_4@2J4LEK$M:,RX&NI'V`&QI,^@!LTMHMI]J!ZJ7KI;A+V4O
+M:;S7[;3/N`;I+=C/O`?Y2]]+X*3.]2^,#?I<!+A)<-+B*4<P!QTN23/R4F>4
+MM.?,`^927]*G7Z@/K2^RDSSP/M2-`&^X#HJ3_X@=)+II=1*:2_)+\V]5_T`F
+MY9%F3L;)/KV5*/\OKD+KS._!O&SQMBS&B88)E^'ZV.^^AC;C[EM^;@^_!YKF
+M\#*[_V)&O?JP?>_PO!B;CC;'[^;_QE=Q^?MS7E;:NU_9_A]'Y^G`8GD>_]6Y
+M_7O_IBKE=?8^W><W$]FAL<?PLEPWN*MEU@,%DJM.0D=KJC,US*62\[R%]?U(
+M7S><]R'O9;OV*P5/X[U\T]ZG-NW%Q+#*][!2?E0LMI7NHZCL9;19K01>!VNJ
+MK4%6-7`6#Y=+-UJ`T=.OG>C\IY6`Y;)YOG&EZ#TRB<)COQ[7W8?U/<S3_J<'
+MBJKZ$[=<V47_BQ1-H\'X93%97^=W@KK"::M6CFYRH>U)U7N_/?,IZ5O_F5@,
+MKKO+Y6`>M_[]\^_X\)?>@5)WE=]D7T/N+US7G4?V</@L<U:/Q\ZVYI=#XCLZ
+M",]&X?5X?WVMA?;_QK+KZUFM.R@*OVLGEGN:VMT[V^=MM]_FX:`A?2OU\I^/
+MP-NL-#>?V>.IJ[/W?7J=DH=9A^#M]=FL+*:J%8T)6=YQGE7SJ_?4=%P?ZL_B
+MP^BVKS\W-OQ>W&VSA>S+=*P4,AWZ#J;C4::U,RJ7/Q]MA-3I-$^6_U+KYW;W
+M>3ZGAE?,PD!C[W'QF$YG8W5]_.8?JY^%8^G86^L<'\]?GW/+;FT3^#HK-$6_
+M^/Z^.4:8N\/]O9Z?O=WJO52ZWILN,5)]3">U&]4W?]:[#_GQ"M;L,3I?7>[A
+MZ#S^5ZH/L>Z#[WS]C49_WV[1>O.O'G="G8+6,=]E-%Z6?G#S[[]>W[30=MH/
+MX2]4M0=1@M5;MS9O>K<.ZT,_4^,[6[T9SMT/^#*W1?'D?2\!@/*TZ\=#$>SV
+M[39]SI(/,70I/TE\T>47?_2_-Y@I6\?AFG;;QDS3N7&Q/3JZZ]SV.HLYN+U^
+M71L>"?92J[>CW*Z=V=^U.,Y]ZE9OA047<M1N'C/9*U5?/ZYSH>1C[AXL1C77
+MZV?]:31?MTH2H1>AB<_8,-[&+N/^;W[ELW7HN7@S\[OGWY[[D<'"1-TU7[]V
+MX]*)SW)*MG<N^WSMPN?,Y3KE9:N>SR+AX)B#?<)[&KKM%%?#^-OK/Z:*:XF4
+M^O!NCYXN^\]FK44_WGV>R?I]NG]QR_[=?\4P?:WY>S_6?RVQA:"L;38W;REU
+M<\^H6:UYV4H?NJV=NGQ03S&]JQ=1\V-5A+<[=S3;+\>]^4/GM'UK9E,)LV..
+MFZ+XLCL,G_5OYEM]RN_+<.[V.]]5<S$GS]9]SO.KN+[TK\-/A,^N]+?0UPT-
+MGM.%F<Y7LG9/@T'^,W1^WAL74ZY#5_)^MBWIZHM!@_8N=RL7*\/]5[M;W%N_
+MVN7#KDUJ/KL>\AE]?O>T[CH\.?<8^#Q.2^?73^=2:&C+?(T!;WVC3OG*-3X-
+MWKTP`O8O5"2SJ^D-$Y+1XTVM!34B]H:$U^D6<+_Q2X;YH3?!J!<@-*%N2A=H
+MSAZ92.0G(TCZ_E?>[VZCXJ"A=N^\QQ;_&C/@%O_4?G.Z;M^_]4,AL7OQ=G.R
+M]`N?(W:.JX?B_4<N['[1TH%\:N]+N5#'RM0[;%</Q7JT,[4:(JYX_:>%V_J?
+M>OY=6,9K%Q/Q7Q]-VHW/^E[SWW/N.]#4/XD=C1SY/[^2FZ[=%WW7PU*@HG/P
+MND=K'*A=G;P$^WN[/<\/6U#Q6UXF+Y*X&-ZN>@%SW]57<IR_>O5':H5F&S;G
+MA_4\/QU_E3/!=/+U<EH[EG(^!QOK,>=W).O>#WX#UYSNP71\WE.].M&=D[JY
+M87HQM<ZKQL,A^?P=?$KHS2?36\2YU!=CKCT>Y;=?;]G;^;<W3D;WY+7^V5\K
+M>ZWC:?^OIYVU88?DRLW7/2T4[6<U@9_TO9@-=B(^-K&0Y74PV0L7\7[T/$^>
+M*BGYY][;JQB]91,'*B7$^Z\%.1=Y45%X2Y^ZC73[DY+BG(O[XF!;Q5>6[++2
+M^)U/0+SW>D^>>/)3O"3?M`Y'ZN4\ZN7].]$6[TG_"]4+F4'/>)HO5*.B<UU"
+M437^%V+>+E5&A*"%ZE*A1_NO/A=*#Q,:/PTY!B*$E%RY5SLNKKW6+KXK;9RR
+M_Y=/`QG?_5W?^U83C]XH[5O;OV5[KX7>A=\AM/"N'XK:43EW%U1<O$O[[Q.K
+MWR=*[*P7$_%:QA/O;K04/\L;;]':J,\YT/?9;8?B]I_57Z51\+F\>&#^N?=>
+MYF=A/T=02]'PUO[W5CW9^H1>U\#EE=B[>&>7?^K_/0>("\:M[<IUBNH71U[5
+M'([3NT[\[G_'^>38-M[M4]WZ<!PW6#Z&?UN`P=;YOU6S74?^/\OLW;:OC?Q8
+MXCY+W5/!#^+\_!LX>X^;(?A:\=C^O3GC![O4^&LP^JIW/\KVO5RE]B8;%9S=
+M]ZN77:V+F?'9/%^TQU+5KZ@\XB0]'NX=WO5AJ?:Y_GV;>VJ=O>$_)U^F_.VT
+M75E]=\]A]9?]W'2;#7^FYS?M^CE,WR/0JGZX6^_KI(IV^&G:Y=S;#]L/SOUM
+MOW<F#S^_K'H6/JX^$]OS+%U9+E=G,6[:Y7]*K$Z+I_3A\YZ^GNM;U]BV_Q>9
+MM/TS/NVJL0E.]%W^#3^CH/XP=JA("]^KJ\KO[SAI/0<JZ_I>L5(6/X;-\G]?
+M?+_E++G9Y[;W'>I/.?>HWRB7.7?GW2B+F+J,^8[+F.CYB\TM?13[J;LH'1>6
+M2B]D-^EOKRYH?OO%`YG`39HDX>::-F6S2C?#E1(DF)CE/,*/PN_B=:&A=9]?
+M0E[W0T^Z4+"AH%SJOGRE=SH:-UHB]CLZ3Q:>CGW>BHG2@H"A;I/N;H44GG:?
+MH7:CHBTACV5!RD9>YT%$P\-.*`,"I:4O%(=$9-"A),%))3=XBTQ93D4G^)W*
+M<5WBHW,I(8.7B7,&F')A/43N8<\3MX6!224Q.9@MTVL\6B>OW85'OFU@[9NW
+M:>LEJ__59?_T'1T[KE'^K0>)TG7)\GJ/O//B7YE</Q/ISJY[=:+M.[KD):G^
+M%[[KS_+KD]A_`7\T\?)Y('/3SKX'/8DI.]*TM*S3E1-U(O74;7N-,(I4?'C4
+M@13_Y>YJ![3HY%QI7A[S"G>"??*'OO:[_U/YMJG_%%0>%AWJ>Y8_8^&H47;9
+M;3_M[O_NC/?>1Y4K2^/FOZ>$=ZYY:T%$Y4B(FR0W?B)[U;%UZ'^'Y=XNZZ^%
+MT>*#)ZQZ\-.7KB?B?KX\?L7N>[JYEZLX^T<\\QGH^!VH)!=(LHW,,V2[(2!?
+MC'KLM'9;'R&=+V8^/S$C'+LS&9>-79O'R./RQ0;+1D>6;QY@W,X^,&,Q(1Q:
+M+)YE=%Q>/99TLN+QT6>DR,<R+/9HY1CLR6CR>82CR]F=+W%*A25'1D:7=N<J
+M<@9<Y!R&3CRA>8.)8_-E,D>;KG"SI:,L_F\SDRB!>A"4,R>1C"D0I(RZXM'F
+M,F4%*42H*7N*DB$&R10R1*0XZ0.@A1N+*4,N6DR>>CCJ'ELQFB]2C./CI&10
+M%&3\W0R*9@Z9%WDK'Q9>^,S+*+*JI15=FBKV4YY=ED"@>74D$QG#4[(W7(4D
+MQXT<=Q\BS.<"HD5$,O$YXI%71V<*7S)5%E,F0*9BJP4\FIBHX4HE5;#"#@^9
+MSV3*@Y5;*1XO,2!U4B[Q%LY"0CD4F"9Y>\9@J;F;@V`.$&6R;R&0CXS(R)Q2
+M].!0D(PJX2&2*A!:NS26F$3A2IE5$-63>3D8O+Y@HMDHS,HJ5.CQR8WBJM.V
+MC)5?R*9UD<[ECTL69PE8`G-11[,1KB@9P:1RI3+(%$\B4;CF15:71<=&QC*,
+M3)N0S&9*#%Z9>.S>/;54\U/M4;"6K>+C\SGFT"D7`_1AG)3)1CX[+LFT)9LR
+MU.'1MF4UE0LI]<4W.,)B)08M@EL&RAT=('1XH>@+D6VDC\]F&VHORZ4JZ*M)
+M7YXM#.XYE2BKY%N59:W<J&Y:0*`QRE?IP:0S.8R)T(1V4NP(U;&#15*NR$86
+M>9YF.I0ZYP6*I.6C!4U.6O6)*$E3R]Y<S.XN+-5JBR$M.Q1/.,DSV5+,N6`2
+MR39"I7FGVYLLF-S&;;6>&*K/+-K/L,*9HLB1-.)P3,@X+5CLF7LR2%N64$=Y
+MK.,CS)$6VAD6]XA-[<JCWORS`,:,%-<BXN%'40L!XJ\F"RH)%QF7SI4;S,:B
+MU=$J5VYLLUE3/KN!X:U+Q<&GT*FQ57*0,L6$+2E0.>,@J<Z45C(T]AZ/*4<D
+MM@VE@V,G!(9$T.YLM-'0I:T6)&5CH^2<`/,1YE4*@V2*JJXS^3?#";SF5-LF
+MVNV9<WZFKB`XLM2&$>*66X7*ILA&%+J(U<469*"7;(%IRP"8YEA#`UVQ\?35
+M9REL!93F%%'+"U"W]Q<VC\]:Z4@79[,'#L09LK?506XM*V;'%G4WSJ7CD)O7
+M&=.D#VBBCZK[ZAZS-+'BUMH%GFI&C2]M*!N(I5X%!F-:ZCHU$YEXQ%M6)4+1
+MH`E-/<Y?,%<WS1;Q:-3L$E)1F8TK6OEJ9B8Y$PYD6IUO3A=AXZV6M.*BWE#+
+MFLQ-K(3W\*DUELF4.,_0<+;B@V]N7"*Z"5S,JHKLBI>H2)89<@XCF4;KU]99
+MO4FXS'Q[=&X6*EDHZ/D'&I;'9Z$<5;S#)2P0V,J02FRT@W7H/F)PR%@&S,W=
+MN(S,K<68AQ0MPC-HNCCVO&R>BG"WN>[OI8H+0,M@O,9D]L<SMN;R9;6I:\\-
+MGG"QIFW"*NL@`N`9DVYU"(I2\8SS;::*SA2-&LG$Y-*7FBF`,QQ0')X\Z8W<
+MM0T(VE\H?CX]F5Z.[7B)B[39X-=>HF]W>\1<)9[3:U92R3:AHO_0ILQX2J?>
+MYMLVZ(^6LZP5GZ4"6E'14GNM*T;G2I%<Z5*K<CYQ=?_R?^<O^2"D_IQ_QK)-
+MH6<"!@*]I6!,.:[BO2Y2G=#<>;?%U(MCKO/=1@O^Y=(#S=2R>3+H(91+ZU.^
+MHB"B?2)EG5LG3C50_JH3T^5SNY,P/F$7,;Y^9B@MSUA9KW[PE[)XDU/F"7J?
+MSJ%\EXJ@3#X*>G?_'_Z;`?YY3\FG>>'UDNA7ZRIQ`EI?_8G/_C'Z=29_I623
+MG2@QY.GZPBB7?_]OQ#UY/^7I[_^)#E7_\Z.2[+B?ZBGNY.^"?G_WH/M[6NHV
+MD45&*-W:KW42W]I-Z).?PRXG^(G7T\-MK;Q8^2RNEJ/1X=GR,F^?CP(3'ZE[
+MZ>^M6.U3SU;QNO2Q7?GOYH/U=66<Q\I=-WMXF+EMCAKM[D_X/>AM=&:#+9#3
+M_';-Y<*]\V&]*H]7Y*S#;O:17V0%9^KMN<9J=W=>;6>+8['S.F_2N1T65D<Y
+M\U==.U?O8W%]V.,X=HTWFW7W,#Z</NW+Q.OB^+_O5?L_0?YLO_53L5/]WZ<J
+M79J'\/O;8]RG]Q[[KUWGGOT[P,)]SH5]'1K^^\]QC./WZ5?JP/W6+FPO%NV\
+MP&ZPFYPWLXC:1VSR6OR^NS&M\W4YR3STGYVET.CT>ATOG2>:U4C+9?7Y;89#
+MTL454M[Y7`O/!AIBZ<>Y\BX<J$^F#F;'T*[TZM^I,?200C3[TO$MZ3X/^T,O
+M_YGRTI/_K'=8UGQ1$EV7>(E6'RZUR71$G,,G*CF2S/)=^02*.%ZQIZCK_7-\
+ML:U#&DG[\D>B[$!@%Q!^`*\-]8+D&^8%S#<<%T#<`%@&]\%U#?X!=@WK`NX;
+MT@:<&UX+P&U0+R&TH+T&SP+V&S(-/#90%B&QP+X&Q`+Z&P0-0#7P&HAKN#4@
+MUP!?@T(#4PUC!J@:N`OX:K`U4-4`:L&>`:N&<@8`-XM8!6`W\@UD-^X-:#=8
+M&!#?@#6PWU@UP-\P-=#<<&O!N`#7PWO@V`-_@&PAO6!@@WI`V(-KP;&&U0-D
+M#:4&RAL\#9@V9!LX;*`V@-C@8,-B`;2&P0,(&O@-J#7<&UAK@#"AH0&V!K&#
+M;0U<!MP:K`V\-4`;@&>`;B&<@;D&\4L!<PW\@W0-^X-U#=8&&#?@#=@WU@W<
+M-\P-X#<<&\AN`##AO?!\H-_@&]!O6!B`WI`WL-KP;X&U0-]#:4&)#9X&_!LR
+M#?PV4!\L2:)?:>U>Y3ZL9$2G6B)+KSN`PD3+,/BUR]=$2SW=4=+GK"Q'J-^S
+M.J*+]Z7-W:38%BKE`\\?I;YYD_%BU>5J@J=1S3&M:,T4SD*=3!^!$0M\!L5%
+M$<:B<RFJ=+TF[K$+^5$?51,JD8@0HR[C&0*,WE8/G1_1W._&&US.U114@N=0
+M,$E"I3]&3V46N?Q:M(J,K@)O%119[E,*\8(7XOD9"SE'M,N/^%E+)9H]YR?V
+M-68+BC$,MQ1!EZ:#HE_6<SRX>;N7F%GFF.RA-I6'-.P\Z;K,I3R4ZQ^)=<L8
+MS>C`*\&2+,KVL]BF;LCOG,`TFQLX><8-H'8V4ZL#FVB8\0ICE4I3H%-/+F]U
+M@3J\8XR6@GES*%3`GP].8)MW'9V!04TTPSIQDS[B4Y44R:7XGE_8RAIB7G%\
+MN4>[*3T7YFRE[8S!0^8G',HO-_+R%%VA@2KKSR](KF%_;],4DE#^8N9VB<K!
+M,=F(V<1+5*3:L,7\<TW*.4D9?32+C#\_/_B7KS^Q:<.BGYAU6M#'60B]9W6]
+MCK:Z,F:44Q=<&<KTK%=>4F>--.2^97S!9_KM6"3$E-P:\W>M9I:-"\B;?H>4
+ML7IWI,%(A5/G&;6ELS/&M@P8">3(\4HKS@OEE915<,F>YL/-B\VE5`\X\;XV
+M^&(7"2T!5*SCX5IY6#:`Z%7$8T,&LIS3,M@"GDJSE-W9EKX61?NS$8_ZXB6>
+MMDAIL4!\THY*"_USD@HQJ+--%"2NX%_Q4>)@OR5*2V*^.9!4=LK#.Z'BXJ>0
+MU0[F%?+7@6QS6BU*H.E*U<=<'K@=<'T3N-L#"$XP0FC5Q:!E"T/%.,S?9P1?
+M@IKH"@=`8Q'[#2?!,UTHDJ%M;',:4S.E?-=@'1RTE2F6OTT69+/%_76DQYAD
+MQ7E_V!+AC_*?"];L^2K`V$O,E]6+;U\O6I%4TP5?C$GZ6AN6$.FS#V#T*@+Z
+M(,M%30O+FL)E/=J"*ITWJRV.5$=TG9FD(?PX(RNEZ;W#"-EC4I;)`1,I)R`B
+M6S@&F:8@6-BA]&7]OTNE%;=+%[Q*.F$LM,I,YI+03JU9I.(,)E6GER<&;J;#
+M=%DVL"#/22T.99Y.W'-,M)X!!PDX9';LH,&5DTT3/5W%X="CH)__EJ5$22"^
+MN9O<1RV%R]-&Z"SF&_^-8>46/WVBW-DWTL&<58?D:66=8=;;.7DESE-!/2C/
+MO&K?,'\!(LGO%D;\XQBVP!E6$<8IR4PO+28HY<+WR>V08\T?H52)$@(6HKI.
+MS.JM+E-[7D-*?Q]85!.9JU$4XNK!38<PM_2<RJ1)H.AK4/R")9A^^ZH0,9P.
+M`P;*`0#*`0"```$"44_VQP+,8`#Q=5S;[#5T5P(+"_W#``3@Z0CM@P)S="<U
+M@!4!-VAO;64O86YT96LO=&5M<"]B=6EL9"]U;G)A<C4O;&EB87)C:&EV92]B
+M:6XO8G-D8V%T7W1E<W0*`Q.H!*M;#]\Z`$)Y/BM@`)@Q7.O*2>Y7`A,+O+``
+M!.BH%NV#`EV.>OB`%0$W:&]M92]A;G1E:R]T96UP+V)U:6QD+W5N<F%R-2]L
+M:6)A<F-H:79E+V)I;B]B<V1T87)?=&5S=`H#$ZH$JUO1=0(WBT=1)@,%!`$`
+/````````````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu
new file mode 100644
index 00000000000..3b47dd07c87
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu
@@ -0,0 +1,345 @@
+begin 644 rar5_multiarchive.part04.rar
+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
+/428#!00!````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu
new file mode 100644
index 00000000000..4dc97d65ea1
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu
@@ -0,0 +1,345 @@
+begin 644 rar5_multiarchive.part05.rar
+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
+/428#!00!````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu
new file mode 100644
index 00000000000..1e2ad0cf983
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu
@@ -0,0 +1,345 @@
+begin 644 rar5_multiarchive.part06.rar
+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
+/428#!00!````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu
new file mode 100644
index 00000000000..de1044e3058
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu
@@ -0,0 +1,345 @@
+begin 644 rar5_multiarchive.part07.rar
+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
+/428#!00!````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu
new file mode 100644
index 00000000000..eae45fc7a2f
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu
@@ -0,0 +1,208 @@
+begin 644 rar5_multiarchive.part08.rar
+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
+<9'1A<E]T97-T"@,3J@2K6]%U`C<==U91`P4$````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu
new file mode 100644
index 00000000000..af4addf62d6
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu
@@ -0,0 +1,299 @@
+begin 644 test_read_format_rar5_multiarchive_solid.part01.rar
+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
+E+4%2378W+6QS"@,3JRFO6QUI@`R+1U$F`P4$`0``````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu
new file mode 100644
index 00000000000..1d77567e3e2
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu
@@ -0,0 +1,299 @@
+begin 644 test_read_format_rar5_multiarchive_solid.part02.rar
+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
+E+4%2378W+6QS"@,3JRFO6QUI@`R+1U$F`P4$`0``````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu
new file mode 100644
index 00000000000..4ec0e551fd1
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu
@@ -0,0 +1,299 @@
+begin 644 test_read_format_rar5_multiarchive_solid.part03.rar
+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
+E+4%2378W+6QS"@,3JRFO6QUI@`R+1U$F`P4$`0``````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu
new file mode 100644
index 00000000000..efba21d5076
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu
@@ -0,0 +1,76 @@
+begin 644 test_read_format_rar5_multiarchive_solid.part04.rar
+M4F%R(1H'`0":-0&C#0$%"`<#!P$!@("`@`#=A_^>,@(+"_>8``2XQ07M@P+K
+MD6^(P!T!$F5L9BU,:6YU>"U!4DUV-RUL<PH#$ZLIKUL=:8`,_\5:."$E'J5>
+MN64SWV>!5I_7;2651I*@W)FU^2!DC>VEJ42TL3HW*X8;OLDQ.>[-9?)#V/F.
+M*2X(JT=&B/=8&2W*DO[.K$-"7=K=U+R6'K@N=J(/[59-VZO7@UA<FC>8!6O.
+M`6'W1ZISUK)\P5PW]5N&5U)1_R@#6(3XBNLAEPFKL!10UJ-!2CYD782SXD-=
+M:;AJ4ZX.Q>J3#"?35/B.T`ZK;)=L\2ZF@W-\IXE1K8U]2(.Q'T%[6RF;`^97
+MQ@75ZJ:\B'TKWEDDN!?F=1>.2B8C@#W8,32+4SR)@E>_@42;>I%E="<_4D7N
+M$=\.V3-DA?^9(+2-27=V<Z;EIV]$UW`_[1-BF>TSAH&Q&;U8!S+J)P7AJCSM
+MPO?_N#T;IN\"WC^%T6"*ZE*AJ+$_6E?B65;4=EQNVC:;X3#VS>4_D#^50HF9
+M:Z90C4Z9V/+)[[1%NTKB<`R%;WHJ3`-SLS<,+9#_H6E\LW^&S69VSM#=)S92
+MZ302_(!0EA6(+]?I/@A_IP<N*74=X*":73Z@3;G:UUD')5?F=VH!U7(,HN?D
+M)A@$59T_LQ\UX'H;BJ"_&,0I:L35G*4=\8/"Z"R^\HDFZ`2F&5YL5G[%0_YT
+MO;BO[2+\B)LD0)EHP?[.S>5+G`WB<RR/;W!M_QEEO]%E/JX%>`S[LEIA[A;]
+M2ZG)*NWV9/,[IZVQ-&T+Q,U5KL#5_I\B/P?01_`@W:@K-?9QMAM+7*238+O/
+MFQ`$4#A+Q_\V/;Z`=O1=SJ6K]R7&QM+2QS65RNV']E'GYRMG8:^TVPF_65OW
+M3*J-$B[^:]="Y6@M0&I3DA_PD'HA\M$=<J88'_]X^EA_P705Q9UZZ'W*(U*!
+MQ+M8CNOI",Z6!!IQLT!D_VA2:=FAP*$S66%6D5PM_%$U96NTS2[A<7X_R7M$
+MKYO7F16`0O>U$ERGF\A_[D76\'?*@HLLK9BRC6Y64Q/M-J=+3Z3N=%WB5]T?
+M=%)^&(](=AW-=6+.^#1M2TYRTKQ@7_YIE\AGM+2ZGN.YU&$`7C[ZYZ'G^,!W
+M3YWM29OL(`)7H4VU\D#QY_KPFPQ5=9K]AL:[95^S<+'O0@?MKM=MFMN'&>S^
+MAT6CTF:I>YTVG`^\UJ=5K*1]*@Z2=86,L!C)_QCK*'_.D$ZE%5:6Y3N:XX<B
+MSG6-:4GQQP5N>7-8"T7C[3AO$CL!O<91K4"X3\#\U.T?9^I!718:FK[<%8[Z
+MN#@&+/:TNESW;]XD3\/[`>F3-R'Y8Z?2=QH'I7B_'"@WJTS^8+MX=EF<>?=+
+M=[?WXZ-`&(C6M:M(-_1R"U6UY,_GJ=]U^0T>:R'<9)BJ,K3'VCP$'Z`F0U='
+MD-F/^$'2W;=-1E,AW(\^^P;/+NB/)=H/ST\B7E<!\$;WOC,>]G8;1%F\&9=+
+M(LHZ90E)&JT2'>4/FS`_HNU:A*N5X*='`K_WG>2J\HP,3Z;3SA?SJ?">_16^
+MLF&NP:#MT/7//TSYU?>2[,,=KM%W9:`/Z$N[H_H;0AX/S\.!%96P!R:>=Y55
+M-G6EU_BR0I-L`_%9*P,4?.U]ED7LO@:1#PNHMUK1AU75:TCX6M&DGDNT/^S4
+MI4/1B<5->;A/-Q1L7LWX?$"&5X7\\OG"(*%&W"F<>0G'Q[_-UH,AE<_I-/H,
+M^.Q]Q_FHU/:RWM*:Z-,$/&H=.D4AE#[I]L0JC1^?/_M.\>1K5"/GF[VM;WAA
+MT/GP;R37:=HU%0):[0B-AL-H)/^L98FI1_`SA8,2O,L-7)F_LJ7WA1A]?9S.
+M`%V9"1:3L\OF'N_8J<OEV>?8/,>7=N61K[+L\Q2.2*HR[WOF%3,*,L\SN](Z
+M?-UO;OA2]/EJ7727C]IYUCQY5F+3[Y"[6/L#=&FF1,3^Y2Z/#YX)9\?/75PQ
+M<Z57-,O$4]I*`HX0W='O*P4</GV`P'<&8BU\_(ZRE]]I1*2+\A<UE'/RRYS"
+MQH^?2H8A4P)R[EP1\Q5^7U^KG]\^P)TY0H8JCE!JP\=]*L;"89%(8RT?[YDA
+M^OO*!M9[]=)6"91C1.\ODP:]".@0!1\9AH]*H_4]Y1EZ,;7@[6B")Z"0*MYC
+M6C/*WTWO[?'Z`$=5WS<$-E7R_28;YZMREB>GTF2]\GB0"*__<-P)ER2[5NQ$
+MLB=P@'Q2O]94!73ZNU]&G9\BX62Y"J:R`5UK(:N_\UG>/*4X1\3M7U8CH>JU
+MO7F81QKS#NQ/='=U0GV*L];,^];MRWECL[62[!L1_=AMC#74$=%P8<U9(]S.
+M4RU(L-VFUP%4=E%?33=$T>U.SJJX,I29PIMPNJZC.;*Y1W5$\Z'Z`O+25)\A
+MS49445R]B5]MLY^3U*7.>_\?F#$'I]CGK2\YJ59C[(5]K.EGJK6KV5;:*]95
+MGS69IRM4.0!1K\AD,DB-.SJ=N\[MJO`?M@B#:1Z^[?N-%3TV@UAD`8U1F,B7
+M2FX/0`1:77K[TC:5_5U_^P@I=6#@:?3Z#/4[ZMT&PT6R[?9]Q8TUI3[C5]]K
+M"=>,ZUW.II:4Q6-KK8OT6ML%><6(IW)L3YL08W8"Y?T(K-O6U;AN!4?VS">2
+MOKPG4RN4KZZJ"9XK[2CP>*=F+_'.3:\9C][UW2[/4+F*/5/?O_[DQ5O,]=A%
+MD6WC/N3_0GU(;UJGDS=:6/BGZC$1=F97>C>GO,DJZ/9CQJA0UB5_9#9Y7(5@
+M_Y#2O(&+\TG?;W<(-XO$E:$=9)+"[/FG9]0Y[)/IVE%:\[064QHJ:EVN7Z_-
+M)8#D^<JV&\N;3_!.]5ME*3SYZP&J]C]688+&OR@:]G7_0RD[3FV_1_Y*_^O[
+M">[BPM3./V,UI8/6<V:\]%0@KJ65<+G6M2S7PM!2[T@.YTK7=YW3Z?.]S3ZL
+M_^[71L]$,L%]/90'D"?5M8BCL5.V#^R1>[$]A;48@31)F!]UP*V;!,]$OJ_;
+M,):W6=PYO^5`/ET"]W_?W/RX:?\8>841$5PV<M:R,L_[FES;ETSUA8[@!\V&
+MQ0U:"6>Z$S#C4,F,'J4@[99[O2;2K"59V=;LSA@=OL:FU*-_(`V[/HV4_T4I
+M7ROWKT23]KKNNP/L6U$-!2OLJQ\K\I5RQU@$[R$L<_Q:3O(RS79VNO"*_FRN
+M<*=V:(=(RDKVP$W_";>+L<WXR#;^RTU(F4:\[J,]I-(ZY[1YW3ZC04^=I=(&
+M$)%\^2N/ZVTRA$XJ;-(#L(JA/\/GY/ZNA_(3%]JN5T?Y+K^B!;5_X^BOW3^V
+M/+'493@L>UXDF_E;^!NK!JXAK^GA>F7]/:=6I'UAAGU?`8ZV.??&*O^W0Z-A
+MP=RO'3/J*W<[Q,FUYQ9)Y?T1IU-_CLO/U<!#C-N?3%+^KG?F*?/\1GGNSWQ+
+M<9QGUX[40>"">_Q#D-;!4YY[\[AOOW_^YVJE?-XXT?C?_>.G)Y^MOY13Q'RU
+MJ9Y,5_=@,C]B>O@LDW:YU:`NB=VE*/M"][T3MS"LOG?+F\&ZY]5I7+3MZYVU
+MC=?+@IH%M)*SZY'4IIB_WCQS9Z&3QSCYA,\H^^,Q;/.[UT!?=/\&]W9K]\H$
+MT6>SV::H17F<DUF,IV64RSS`B9_`U\5]'W.B:I,I2!IBRG<9THCH_3D^$)UQ
+MB.>Q$.)J$_G'\[`Q,Q/O\4_ZE_\R#0/^K?XN!\V#C'_6@7.4L]B3=Z'\CQ7>
+M#D=Q;CJMRF=[72"ZGK8/>I0+VJM:ZOK*,69_=T;7H\:S<;060C.X!VQI8@_&
+M!].\+795M>CHSPL:^T2'BN/^I8CS*'Z>^PU6!^E-P(?M/W&4"^OJS;CRK=B%
+M$<FR72W?]Y4V0]-PYN5Y_2J[)8G(=BNJS#V!J?58.ZH6&QE#8C@'[Q@0,S$*
+MXL_WF0D]+)%#]>"OU;E?STPJ,<V\Z'Z[<<6E9F%7&JSL5.Q;QZO*;<WX`=!V
+M$]W@N.*F&'R7_UX'Z#PQ)A/LN2[BHA+/T?R;$7F!L%ROOJ)E0QSIG"")W+Y9
+M\'(3W>=/IF#93M,RONM8?Q/,G^>_BEIZRWU[!V?27F<L!E1S=]2K>`(D(IE)
+M=T-33SW';P5;AJSW[PS-,K"9OJV-[[!1=VTNZ(:1QT<RKAV;IS-Q]D]?/(MF
+MK^GV$]WWTNZ&MYZN/?W[7@(9]26F5YA=.8WSLNKR>*K=BD-/V"IJE;Z9WGDX
+M`%<>8W,83#/YUY;9!8@%]F3Z?ZEY;ER%`I'<]/+O\Q+S7'FJ]/I2:Y$^P97[
+MWV#&7E;^67!2@M'3IZK_I9"_FEW2[UL"2N&95EWKV7O-V)\>ZN%S#5Y+R38K
+H/9W66E.Q+(N>XP"]]!;_)_1#+2813H\*W_]K2Z?M5Y0==U91`P4$````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiple_files.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiple_files.rar.uu
new file mode 100644
index 00000000000..3fa8930c9d3
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiple_files.rar.uu
@@ -0,0 +1,40 @@
+begin 644 rar5_multiple_files.rar
+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
+D=?O@C\QRH^^TD?3?B/F+D.=:AQZT.#3\5'_^`!UW5E$#!00`
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu
new file mode 100644
index 00000000000..4a8acb08c45
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu
@@ -0,0 +1,19 @@
+begin 644 rar5_multiple_files_solid.rar
+M4F%R(1H'`0`)[\AO"P$%!P0&`0&`@(``&8R4_R<"`POY`@2`(*2#`L:R$WZ`
+M'0$)=&5S=#$N8FEN"@,39U^L6QI:GA#)YW4!&&5492;T@%?U\^?/DDDDDDDD
+MDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDO\\YG#6M
+MEU>^U%T\J3G5RSM\>Y[K?1K,SKP\_'=-M[V;Z=_QC-9YYK#.K,Z<_!W``(`(
+M`;##?S\>_N[>SKZNGHY^;EY./BX>#?WMW<V]K9V-?6U=33TM'0S\[-S,O*R<
+MC'QL7$P\+!P+^^O;R[NKFXM[:UM+.RL;"OKJVLJZJIJ*>FI:2CHJ&@GYZ=G)
+MN:F9B7EI64DY*1D(^.C8R+BHF(AX:%A(."@8!_?GU\>WIY>/__O[_/W[V8]@
+MIG"F6O5\HHC7\D(6UP%MQ8#$T:+90ED3*`YM@Q@Q-FR(B6D(6UP%^8L!B:-%
+MLH2R)E`<_(,8,3;R1$2TA"VN`OQ%@,31HME"61,H#GX!C!B;>"(B6D(6UP%]
+MXL!B:-%LH2R)E`:8=>%?F.N5]]Q:OIMZKYB^ISUY3E[BG(VOBL7^`#MSXI$G
+M`@,+F0`$@""D@P++KV;QP!T!"71E<W0R+F)I;@H#$WI?K%LM5',700T6<``@
+M`@!J7\?WN>#%ZG\PZ\._C^7^`):4S(<G`@,+J@`$@""D@P+9([&?P!T!"71E
+M<W0S+F)I;@H#$WY?K%O0/0`#0#TG<``@`@!MU_']\P_O30\K*!](8[@A](8[
+M@A](8[@A[F'7AW\?R_P`C7A3;"<"`PN9``2`(*2#`M0^Q!#`'0$)=&5S=#0N
+M8FEN"@,3@5^L6Z$F'1)"#A9P`"`"`&V7\?WL\&+V/YAUX=_'\O\`'7=640,%
+"!```
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu
new file mode 100644
index 00000000000..c508c1f97ff
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu
@@ -0,0 +1,9 @@
+begin 644 test_read_format_rar5_nonempty_dir_stream.rar
+M4F%R(1H'`0"-[P+2``(''($'$7\`_R4``BP<`0(`(0#_Y@```"#2````____
+M_P`(`/__^P#_W0`"(8#_`(:&;;%DS+?,L8```!;(&P#>``#__^_P```4```&
+M`````````````+`!`@`A`/_F````(-(```#_____``@`___[`/_=``(A``++
+M``"`]/^`!P!#^_____\"(2$!`@`A````_R4``B$A`0(`@````0```"#&`/_=
+M``(A@/\`AH9ML63,M\R`_P```,@;`````!@`````_0`````````!87(A&@<`
+5`(WO`M(``O8'&X`'`#C[_X`E``(A
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_owner.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_owner.rar.uu
new file mode 100644
index 00000000000..285bdb91caf
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_owner.rar.uu
@@ -0,0 +1,8 @@
+begin 644 test_read_format_rar5_owner.rar
+M4F%R(1H'`0`SDK7E"@$%!@`%`0&`@`!W:E-^+0(##H4`!H4`I(,"_8VW7"$7
+MDWV```$(<F]O="YT>'0-!@,$<F]O=`5W:&5E;#$R,S0*2J"P0S,"`Q*%``:%
+M`*2#`FZ-MUQFP<VL@``!"FYO8F]D>2YT>'01!@,&;F]B;V1Y!VYO9W)O=7`U
+M-C<X"L=81/8I`@,'A0`&A0"D@P)LD[=<>B#;(H```0MN=6UE<FEC+G1X=`8&
+2#(].N$4Y.3DY"AUW5E$#!00`
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu
new file mode 100644
index 00000000000..611c2af237d
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu
@@ -0,0 +1,15 @@
+begin 644 test_read_format_rar5_readtables_overflow.rar
+M4F%R(1H'`0"-[P+2`)3+'_4`C>\"T@`"T@"4RQ_5]0#O0````,L?Q_T``(`"
+MT@"4RQ_=V-C8`)3+']W=]0"-\`+2`)3+']WU`(WO`M(``M(`E,L?U?4`[P+2
+M`)3+'\?]``"``M(`E,L?W=C8V`"4RQ_=]0#V`(WO`M'UV,?8V-C8$=C8V-C8
+MV(W8V-C8V-C8V-C8V-C8V-C8V-C8V-C8V-C8!]C8V-C8V-C8V-C8V-C8V-C8
+MV-C8V-C8V-C(V-C8V-C2`)3+']W8V-C8V-C8V-C8V-C8V-C8@-C8V-C8V-C8
+MV/+8V-C8V-C8V-C8`038V-C8V-C8V-C8V-C8V-C8V`?8V-C8V-C8V-C8!-C8
+MV-C8V-C8V-C8V-C8V-C8V`?8V-C8V-C8V-C8V-C8`(`"V`7V`(WO`M'U`]L?
+MW?4`C>\"T@`"T@"4'__U`(WO`N``E,L?W84`C0`0T@"4RQ_=V-C8V-C8V`"4
+MR_\R]0#V`(W8V-C8V-C8V-C8V-C8V-C8V-C8V-C8V`?8V-C8V-C8V-C8V-C8
+MV-C8V-C8V-C8V-C8R-C8V-C8T@"4RQ_=V-C8V-C8V-C8V-C8V-C8V(#8V-C8
+MV-C8````9-C8V-C8V!'8V-C8V-C8]]C8V-C8V-C8V-C8V/+8V-C8V-C8V-C8
+=`038V-C8V-C8V-C8V-C8V-C8V`?8V-C8V-C8V-@`
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_solid.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_solid.rar.uu
new file mode 100644
index 00000000000..f4d06c7a549
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_solid.rar.uu
@@ -0,0 +1,27 @@
+begin 644 test_read_format_rar5_solid.rar
+M4F%R(1H'`0`)[\AO"P$%!P0&`0&`@(``Y3=C#"8"`PNG`P2P":2#`LUPRGR`
+M'0$(=&5S="YB:6X*`Q.+5ZQ;^!BM'LTUHP$H=E560?1@6-L,?'&,&#'QQBRR
+MQC&63&#!9999#'QLLLF,8LD)\9"223XR$A)))(2?.222$(220A"220DDA"$O
+M?GOFO?-:2E<YGJG3[F>V7.C+W-]O[F][\UT:YS?7KE^_SOEJUK5:Z=?W.<M^
+M:\_>;K=OHWNY6]_X9H`$`!`-2EP'SS]?G[_;Z?/X_#W^[V^SU>GT>?S>7R>+
+MP]_O=SM]KL]CK]7J=+H\_G<WF<OE<GD<;B<+@\#?;W>;O=;G<;?;;39[+8:_
+M7:S5:G4:?3:72:+0Z#/9S-YG,5V7RV5RE54U&3R./QV,IJ6DH\7B<1AL+A)^
+M>G9R;FIG`7^_7R]7F[W:Z7.Y7&WVVV2"H4:^RH@6WA;;=>TLP;<\(C9ES0)A
+M"0S24<&6T))M+(Q2K/T7"3U5J_?EK'DC(E)6XI6X%+R18*3*BE"I[J5;*EH[
+MP6QEBW][+H7TO'+E]9@I29*@FBJYLM7.%Q9TO!/$]GRP-`590EM<.76HB_&*
+M+!T99VD+ATI>NF*8QI9JG+CY`OEDBH:@M;4EW:HI:K+/UA=.M*3KB,S<;NDG
+M`@,+@0$$@""D@P+&LA-^P!T!"71E<W0Q+F)I;@H#$V=?K%L:6IX01F)^:`!`
+M!`#5&S!)"T^]G>_Z1)!;Q!;;KVH)@VYX1&S+F@3`$AFDHX,MH23:61C&_!'Q
+MI+GZ`VDHC9ES0)?"0S24<&6T))M+(QC>@CXTESU`;241LRYH$O!(9I*.#+:$
+MDVED8I3OA=ECKEQN^6NQ;W5V$7ZXO7RXKWBXHW7_KC/PKJ>2!"<"`PN8``2`
+M(*2#`LNO9O'`'0$)=&5S=#(N8FEN"@,3>E^L6RU4<Q=&"15H`$`$`-;/C^_Q
+M@8S4_E.^(_Q_,_!H[RSC)P(#"ZD`!(`@I(,"V2.QG\`=`0ET97-T,RYB:6X*
+M`Q-^7ZQ;T#T``T8Z)F@`0`0`X3/C^L(?W\V-JV@<2"-8`<2"-8`<2"-8`;Y3
+MOB/\?S/P&*PC^2<"`PN8``2`(*2#`M0^Q!#`'0$)=&5S=#0N8FEN"@,3@5^L
+M6Z$F'1)%"A5H`$`$`."SX_HC`QFQ_*=\1_C^9^#GX4Z7)P(#"ZX`!(`@I(,"
+M\E71N<`=`0ET97-T-2YB:6X*`Q-<9ZQ;&]1%$$0U*V@`0`0`X#/C^L:?W]Y&
+M:$N'VH0S0(,/M0AF?/X?:A#,\>P_X4[XC_'\S\!M2\W-)P(#"Y@`!(`@I(,"
+M_TBD-L`=`0ET97-T-BYB:6X*`Q-?9ZQ;.X_4%T4*%6@`0`0`W[/C^B,#&;'\
+/IWQ'^/YGX!UW5E$#!00`
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_stored.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_stored.rar.uu
new file mode 100644
index 00000000000..405b8795a16
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_stored.rar.uu
@@ -0,0 +1,6 @@
+begin 644 rar5_stored.rar
+M4F%R(1H'`0`SDK7E"@$%!@`%`0&`@``X,`9C+`(#"YT`!)T`I(,"M$.@E8``
+M`0YH96QL;W=O<FQD+G1X=`H#$WX.JUM6Z0X::&5L;&\@;&EB87)C:&EV92!T
+397-T('-U:71E(0H==U91`P4$````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu
new file mode 100644
index 00000000000..378ded71319
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu
@@ -0,0 +1,61 @@
+begin 644 test_read_format_rar5_stored_manyfiles.rar
+M4F%R(1H'`0#SX8+K"P$%!P`&`0&`@(``&F:^=BH"`PN5`P25`^V#`MR*1TF`
+M``$,;6%K95]U=64N=&-L"@,3SB:O6P&2/QLC(2]U<W(O8FEN+V5N=B!T8VQS
+M:#@N-@H*<')O8R!P86-K7W5U92![9FYA;65]('L*("`@(&5X96,@+W5S<B]B
+M:6XO=75E;F-O9&4@)&9N86UE("1F;F%M92`^("1F;F%M92YU=0H@("`@<V5T
+M(&]U="!;97AE8R!L<R`M;&$@)&9N86UE("1F;F%M92YU=5T*("`@('!U=',@
+M)&]U=`H*("`@('-E="!O=70@6V5X96,@8W`@+78@)&9N86UE+G5U("]H;VUE
+M+V%N=&5K+V1E=B]U;G)A<C4O;&EB87)C:&EV92]L:6)A<F-H:79E+W1E<W0O
+M)&9N86UE+G5U70H@("`@<'5T<R`D;W5T"GT*"FEF('LD87)G8R`\(#%]('L*
+M("`@('!U=',@(D5N=&5R('1H92!N86UE(&]F('1H92!205(@9FEL92!I;B!T
+M:&4@87)G=6UE;G0N(@H@("`@97AI="`Q"GT*"F9O<F5A8V@@9FYA;64@)&%R
+M9W8@>PH@("`@<&%C:U]U=64@)&%R9W8*?0JEGN@6*`(#"ZX&!*X&I(,"GL1>
+M?H```0IC96)U;&$N='AT"@,3V'*P6X;U-RQ#96)U;&$*"D-O(&EN;F5G;R!C
+M96)U;&$N"D]N82!N:64@;6$@=V[$F71R>FYOQ9MC:2X*2F5S="!S;V+$A2!N
+M82!W<VMR;\6;(&-E8G5LQ(4L"F1O('-T;W!N:6$@8V5B=6QI8WIN;\6;8VDN
+M"D-E8G5L87-T82!N82!Z97=NQ(5T<GHL"F-E8G5L;W=A(&1O(')D>F5N:6$L
+M"FUO9\6"86)Y('=E:G)Z9<2'('<@<VEE8FEE"F-E8G5L82!B97H@<')Z97)A
+MQ;QE;FEA+@H*5R!N87,@;V)C>GEZ;F$@:2!D>FEK;\6;Q(<*;&5D=VEE('-K
+MP[-RQ(4@<')Z>6MR>71A+`II;F9E<FYO('<@;F%S(&EN=&5R;GDL"F%N871O
+M;6EA(&=W8<6"=&]W;F$L"F$@=R!C96)U;&D@8V5B=6QA+`IN:64@<&]K<L29
+M=&YE(&IE;&ET82X*3VYA('=I96QE:W)OQ(<@;F%G82P*9&\@9\6"Q)EB:2!I
+M='EM<&]D;V)N82X*"D)Y="!N:65S<')Z96-Z;GD@8V5B=6QA+`IU9&%N>2!C
+M96)U;&$@='=O<BX*5R!J961N96H@<&\@<')O<W1U(&1R=6=A+`IW('=IQ)EK
+M<WIE:B!M;FEE:G-Z82!Z87=A<G1A+`IA('<@;F%S=,29<&YE:B!K;VQE:FYA
+M+`IC>GEL:2!T<GIE8VEA(&D@8WIW87)T82X*1&_%FW)O9&MO=V$@9G5G82X*
+M16-H;R!ZQ8)OQ;QO;F4@=R!C:,.S<BX*"D-E8G5L82P@=&\@:F$@<F]Z=6UI
+M96TZ"FYA:FYA9&]B;FEE:G-Z>2!B<GIU8V@@Q9MW:6%T82X*4V%M('-I92!A
+M=7)E;VQA;6D*;F$@=\6"87-NQ(4@8VAW8<6"Q)D@;W!L871A+@I7(&YA<R`M
+M('3%@G5S>F-Z92P@;F5R=WDL(,6\><6">2P*Q9ML=7IY(&D@<V5K<F5T;F_%
+MFV-I+@I)(&IE<W0@;F%M(&]D;<.S=VEO;GD*:61I;W1Y>FT@9&]S:V]N8<6"
+M;\6;8VDN"@HH5VESQ8)A=V$@4WIY;6)O<G-K82D*":B*K28"`PNP"02P":2#
+M`LUPRGR```$(=&5S="YB:6X*`Q.+5ZQ;^!BM'@```````````0````4````+
+M````$P```!T````I````-P```$<```!9````;0```(,```";````M0```-$`
+M``#O````#P$``#$!``!5`0``>P$``*,!``#-`0``^0$``"<"``!7`@``B0(`
+M`+T"``#S`@``*P,``&4#``"A`P``WP,``!\$``!A!```I00``.L$```S!0``
+M?04``,D%```7!@``9P8``+D&```-!P``8P<``+L'```5"```<0@``,\(```O
+M"0``D0D``/4)``!;"@``PPH``"T+``"9"P``!PP``'<,``#I#```70T``-,-
+M``!+#@``Q0X``$$/``"_#P``/Q```,$0``!%$0``RQ$``%,2``#=$@``:1,`
+M`/<3``"'%```&14``*T5``!#%@``VQ8``'47```1&```KQ@``$\9``#Q&0``
+ME1H``#L;``#C&P``C1P``#D=``#G'0``EQX``$D?``#]'P``LR```&LA```E
+M(@``X2(``)\C``!?)```(24``.4E``"K)@``<R<``#TH```)*0``URD``*<J
+M``!Y*P``32P``",M``#[+0``U2X``+$O``"/,```;S$``%$R```U,P``&S0`
+M``,U``#M-0``V38``,<W``"W.```J3D``)TZ``"3.P``BSP``(4]``"!/@``
+M?S\``']```"!00``A4(``(M#``"31```G44``*E&``"W1P``QT@``-E)``#M
+M2@```TP``!M-```U3@``44\``&]0``"/40``L5(``-53``#[5```(U8``$U7
+M``!Y6```IUD``-=:```)7```/5T``'->``"K7P``Y6```"%B``!?8P``GV0`
+M`.%E```E9P``:V@``+-I``#]:@``26P``)=M``#G;@``.7```(UQ``#C<@``
+M.W0``)5U``#Q=@``3W@``*]Y```1>P``=7P``-M]``!#?P``K8```!F"``"'
+M@P``]X0``&F&``#=AP``4XD``,N*``!%C```P8T``#^/``"_D```09(``,63
+M``!+E0``TY8``%V8``#IF0``=YL```>=``"9G@``+:```,.A``!;HP``]:0`
+M`)&F```OJ```SZD``'&K```5K0``NZX``&.P```-L@``N;,``&>U```7MP``
+MR;@``'VZ```SO```Z[T``*6_``!AP0``'\,``-_$``"AQ@``9<@``"O*``#S
+MRP``O<T``(G/``!7T0``)],``/G4``#-U@``H]@``'O:``!5W```,=X```_@
+M``#OX0``T>,``+7E``";YP``@^D``&WK``!9[0``1^\``#?Q```I\P``'?4`
+M`!/W```+^0``!?L```']``#__@``_P`!``$#`0`%!0$`"P<!`!,)`0`="P$`
+M*0T!`#</`0!'$0$`61,!`&T5`0"#%P$`FQD!`+4;`0#1'0$`[Q\!``\B`0`Q
+M)`$`528!`'LH`0"C*@$`S2P!`/DN`0`G,0$`5S,!`(DU`0"]-P$`\SD!`"L\
+M`0!E/@$`H4`!`-]"`0`?10$`84<!`*5)`0#K2P$`,TX!`'U0`0#)4@$`%U4!
+5`&=7`0"Y60$`#5P!`!UW5E$#!00`
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_symlink.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_symlink.rar.uu
new file mode 100644
index 00000000000..f603e3c04db
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_symlink.rar.uu
@@ -0,0 +1,8 @@
+begin 644 test_read_format_rar5_symlink.rar
+M4F%R(1H'`0`SDK7E"@$%!@`%`0&`@`"$O8RN'@("A0`&A0"D@P(XC;=<(1>3
+M?8!``0AF:6QE+G1X=#$R,S0*8QI3.2T"`PT`!@CMPP)7C;=<`````(!``0MS
+M>6UL:6YK+G1X=`P%`0`(9FEL92YT>'2.NOQU)`(#"``&`^W#`DF6MUP`````
+M@$`!!V1I<FQI;FL'!0$!`V1I<J/_?\87`@(`!P#M@P%&EK=<`````(```0-D
+*:7(==U91`P4$````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu
new file mode 100644
index 00000000000..12d9e2550d3
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu
@@ -0,0 +1,7 @@
+begin 644 test_read_format_rar5_truncated_huff.rar
+M4F%R(1H'`0"-[P+2``'#]#P\7P$'`0"-[P+2``+2`!;#M#Q::7!)2?__'`!I
+M?_O_0B\*0RX-,'%O.\(#!-'^T#4````0`P1_``!#(3`P,./H`P```*^OKZ^O
+MKZ^OKZ^OKZ^OKZ^OKZ^OKZ^OKZ^OKZ^OKZ^OKZ\0`*^OKZ^A``KZ``$`2^\#
+9T>WMNP$+-5H*^@`!`$OOB]$````0"S5:*@``
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar5_win32.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_win32.rar.uu
new file mode 100644
index 00000000000..16d9fce1d38
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar5_win32.rar.uu
@@ -0,0 +1,69 @@
+begin 644 test_read_format_rar5_win32.rar
+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
+KJ,`Z/SC^]Q#CZ_LA]/M(_0T0][6AZ>"'E94/$R(?'_N'S0`==U91`P4$````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu
new file mode 100644
index 00000000000..1363386530b
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu
@@ -0,0 +1,10 @@
+begin 644 test_read_format_rar_ppmd_use_after_free.rar
+M4F%R(1H'``1G=$Q26`!W````>U!+`P0R`'#_J7\`+@TU'`#]`0`7__]"0D)"
+M+W5N<V5T"6=I9`UD#1T+``!"`````````&%R(1H'``1G>TQ26`!W=&@`[E!+
+M`P0Q`'#_(````"`@(+<@!/T`("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(`1G=$Q26`!W````
+M>U!+`P0R`'#_J7\`+@TU'`#]`0`7__]"0D)"+W5N<V5T"6=I9`UD#1T+``!"
+@`````````&%R(1H'``1G>TQ26`!W=&@`[E!+`P0Q`'``
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_raw.c b/archivers/libarchive/files/libarchive/test/test_read_format_raw.c
index 831bcec11de..0dac8bfbab4 100644
--- a/archivers/libarchive/files/libarchive/test/test_read_format_raw.c
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_raw.c
@@ -36,6 +36,7 @@ DEFINE_TEST(test_read_format_raw)
const char *reffile1 = "test_read_format_raw.data";
const char *reffile2 = "test_read_format_raw.data.Z";
const char *reffile3 = "test_read_format_raw.bufr";
+ const char *reffile4 = "test_read_format_raw.data.gz";
/* First, try pulling data out of an uninterpretable file. */
extract_reference_file(reffile1);
@@ -117,4 +118,30 @@ DEFINE_TEST(test_read_format_raw)
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+
+ /* Fourth, try with gzip which has metadata. */
+ extract_reference_file(reffile4);
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_raw(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_open_filename(a, reffile4, 1));
+
+ /* First (and only!) Entry */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("test-file-name.data", archive_entry_pathname(ae));
+ assertEqualInt(archive_entry_is_encrypted(ae), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
+ assert(archive_entry_mtime_is_set(ae));
+ assertEqualIntA(a, archive_entry_mtime(ae), 0x5cbafd25);
+ /* Most fields should be unset (unknown) */
+ assert(!archive_entry_size_is_set(ae));
+ assert(!archive_entry_atime_is_set(ae));
+ assert(!archive_entry_ctime_is_set(ae));
+
+ /* Test EOF */
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_raw.data.gz.uu b/archivers/libarchive/files/libarchive/test/test_read_format_raw.data.gz.uu
new file mode 100644
index 00000000000..cf1f7b307d4
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_raw.data.gz.uu
@@ -0,0 +1,4 @@
+begin 644 test_read_format_raw.data.gz
+L'XL(""7]NEP``W1E<W0M9FEL92UN86UE+F1A=&$`2\O/YP(`J&4R?@0`````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_tar_empty_with_gnulabel.c b/archivers/libarchive/files/libarchive/test/test_read_format_tar_empty_with_gnulabel.c
new file mode 100644
index 00000000000..83f20bb9711
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_tar_empty_with_gnulabel.c
@@ -0,0 +1,53 @@
+/*-
+ * Copyright (c) 2019 Martin Matuska
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "test.h"
+__FBSDID("$FreeBSD$");
+
+/*
+ * Tar archives with with just a GNU label (or ending with one) should
+ * be treated as valid (empty) archives
+ */
+DEFINE_TEST(test_read_format_tar_empty_with_gnulabel)
+{
+ char name[] = "test_read_format_tar_empty_with_gnulabel.tar";
+ struct archive_entry *ae;
+ struct archive *a;
+
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
+ extract_reference_file(name);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, 10240));
+
+ /* Read first entry. */
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+
+ /* Verify that the format detection worked. */
+ assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_NONE);
+ assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR);
+
+ assertEqualInt(ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu b/archivers/libarchive/files/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu
new file mode 100644
index 00000000000..c5aa393db8e
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu
@@ -0,0 +1,231 @@
+begin 664 test_read_format_tar_empty_with_gnulabel.tar
+M;&%B96P`````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`#$S-#8W-S,V,C`S`#`P,C8R,``@5@``````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+9````````````````````````````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_xar.c b/archivers/libarchive/files/libarchive/test/test_read_format_xar.c
index b7189eb259e..1c8524520b3 100644
--- a/archivers/libarchive/files/libarchive/test/test_read_format_xar.c
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_xar.c
@@ -614,6 +614,117 @@ static unsigned char archive11[] = {
0x00,0x00,0x00,0xff,0xff,0x03,0x00,0x37,0xf7,0x06,0x47
};
+/* Verify that a file which is missing timestamp information
+has the corresponding timestamps unset.
+#How to make e.g.
+ struct archive *a = archive_write_new();
+ archive_write_set_format_xar(a);
+ archive_write_add_filter_none(a);
+ size_t used, buffsize = 1500;
+ char *buff = (char*) malloc(buffsize);
+ archive_write_open_memory(a, buff, buffsize, &used);
+
+ struct archive_entry *ae = archive_entry_new();
+ archive_entry_copy_pathname(ae, "file");
+ archive_entry_set_size(ae, 8);
+ archive_write_header(a, ae);
+ archive_entry_free(ae);
+ archive_write_data(a, "12345678", 9);
+ archive_write_free(a);
+
+ std::cout << std::string(buff, used);
+ free(buff);
+
+$./a.out > f12.xar
+Verify toc has no mtime/atime sections
+$ xar --dump-toc=- -f f12.xar
+Dump contents
+$ ./a.out | od -t x1 | sed -E -e 's/^0[0-9]+//;s/^ //;s/( )([0-9a-f]{2})/0x\2,/g;$ D'
+*/
+
+static unsigned char archive12[] = {
+0x78,0x61,0x72,0x21,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd1,
+0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x56,0x00,0x00,0x00,0x01,0x78,0x9c,0x55,0x90,
+0x41,0x8e,0xc2,0x30,0x0c,0x45,0xf7,0x9c,0x22,0xca,0xbe,0x38,0x2d,0x2c,0x10,0x72,
+0xdb,0xdd,0x9c,0x00,0x0e,0x50,0xb5,0x6e,0x89,0x68,0x12,0xd4,0x84,0x11,0x70,0x7a,
+0x62,0x17,0x46,0x9a,0x28,0x92,0xbf,0x5f,0xec,0xef,0xc8,0xd8,0x3e,0xdc,0xac,0x7e,
+0x69,0x89,0x36,0xf8,0x5a,0x97,0x5b,0xa3,0x15,0xf9,0x3e,0x0c,0xd6,0x4f,0xb5,0x3e,
+0x9f,0x7e,0x8a,0x83,0x6e,0x9b,0x0d,0x3e,0xba,0xa5,0xd9,0x28,0x4c,0xa1,0xcf,0x41,
+0x61,0xbf,0x50,0x97,0x72,0x47,0x91,0xac,0xa3,0xa6,0x32,0xe5,0xa1,0x28,0x4d,0x61,
+0xaa,0x53,0x65,0x8e,0xf9,0xee,0x77,0x08,0xff,0x4b,0xa4,0xe9,0x42,0xfd,0x35,0xde,
+0x9d,0x8a,0xe9,0x39,0x53,0xad,0xe3,0xa5,0x2b,0x35,0xbf,0x28,0x0c,0xe3,0x18,0x29,
+0x35,0x06,0xe1,0xa3,0x84,0x46,0xfb,0x62,0x73,0x04,0x11,0x6c,0x01,0x5f,0x0f,0xc9,
+0x46,0x3b,0x93,0xb2,0x43,0xfe,0xf6,0xc7,0xc6,0x77,0x79,0x14,0x53,0x04,0x91,0x02,
+0xd3,0xf3,0xf6,0x85,0x22,0x05,0x5a,0x1f,0x06,0xe2,0x79,0xab,0x10,0xe6,0x04,0xe5,
+0x83,0xe0,0xfe,0xe0,0xdd,0x0e,0x5c,0xc6,0x41,0xf2,0x69,0xcd,0xa7,0x35,0x47,0x60,
+0x63,0xde,0x0c,0xc8,0x6a,0x10,0x64,0x51,0x6f,0x2a,0x6b,0x63,0x9a,0x01,0x79,0x57,
+0x93,0xd4,0x55,0xd4,0x06,0x1c,0x76,0x99,0x10,0x31,0x87,0x52,0x2b,0x16,0xff,0x5b,
+0x36,0x78,0x9c,0x55,0x90,0x41,0x8e,0xc2,0x30,0x0c,0x45,0xf7,0x9c,0x22,0xca,0xbe,
+0x38,0x2d,0x2c,0x10,0x72
+};
+
+static void verify12(struct archive *a, struct archive_entry *ae)
+{
+ (void)a; /* UNUSED */
+ assertEqualInt(archive_entry_mtime_is_set(ae), 0);
+ assertEqualInt(archive_entry_atime_is_set(ae), 0);
+ assertEqualInt(archive_entry_mtime(ae), 0);
+ assertEqualInt(archive_entry_atime(ae), 0);
+}
+
+
+/*
+#How to make
+echo "onetwothree" > f1
+echo "fourfivesize" > f2
+xar -cf archive13.xar f1 f2
+od -t x1 archive13.xar | sed -E -e 's/^0[0-9]+//' | sed -E -e 's/^ //' | sed -E -e 's/( )([0-9a-f]{2})/0x\2,/g;$ D'
+*/
+
+static unsigned char archive13[] = {
+0x78,0x61,0x72,0x21,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x31,
+0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xaa,0x00,0x00,0x00,0x01,0x78,0xda,0xcc,0x95,
+0xcb,0x8e,0x9b,0x30,0x14,0x86,0xf7,0x79,0x0a,0xc4,0x9e,0xe2,0x0b,0xbe,0x10,0x39,
+0xcc,0xae,0x4f,0x30,0xdd,0x74,0x67,0xec,0x43,0x82,0x86,0x4b,0x04,0x24,0xcd,0xcc,
+0xd3,0xd7,0x36,0x30,0x69,0x34,0xd3,0x51,0xda,0x4a,0xa3,0x8a,0x05,0xbf,0x8f,0x7f,
+0x9f,0xe3,0x63,0x3e,0x64,0xf5,0x70,0x69,0x9b,0xe8,0x0c,0xc3,0x58,0xf7,0xdd,0x2e,
+0xc6,0x5f,0x50,0x1c,0x41,0x67,0x7a,0x5b,0x77,0xfb,0x5d,0xfc,0xed,0xf1,0x6b,0x22,
+0xe3,0x87,0x62,0xa3,0x2e,0x7a,0x28,0x36,0x91,0x9a,0x7a,0xe3,0x5e,0x91,0x32,0x03,
+0xe8,0xc9,0xad,0x48,0xa6,0xba,0x85,0x82,0x20,0x2c,0x13,0x44,0x12,0xc2,0x1f,0x71,
+0xbe,0xc5,0x68,0x4b,0xf3,0xef,0x2a,0xbd,0xf5,0x84,0x55,0x07,0x30,0x4f,0xe3,0xa9,
+0x8d,0xc6,0xe9,0xb9,0x81,0x5d,0x3c,0x1e,0x34,0x8e,0xfd,0x4c,0xa4,0xfa,0xaa,0x1a,
+0x61,0x2a,0x90,0x4a,0x17,0x15,0xa2,0x63,0xfd,0xe2,0xb3,0xab,0x34,0x08,0x9f,0x22,
+0x5d,0x73,0x84,0x51,0x55,0x37,0x10,0xd5,0x76,0x17,0x93,0x25,0x8d,0xd5,0x93,0x0e,
+0x2a,0x52,0x0d,0x74,0xfb,0xe9,0x10,0x56,0x2f,0x72,0x8e,0x2f,0xf9,0xb3,0xdb,0x52,
+0x4b,0x2d,0x4c,0xae,0xb5,0x5c,0x6c,0x3d,0x89,0x75,0xc3,0xfa,0x78,0x6c,0x6a,0x13,
+0xba,0x4a,0x2f,0xc9,0xfe,0xa5,0x3e,0xc6,0xe9,0x62,0xd5,0x83,0x39,0xd4,0x67,0xb0,
+0xc9,0xfb,0x4d,0x66,0x92,0x96,0x58,0x70,0x4e,0x09,0xa3,0x02,0x73,0x28,0x05,0xa9,
+0x20,0xe7,0xb9,0x34,0x98,0x94,0x0c,0x33,0x8c,0xa4,0xd5,0x22,0xd3,0x2a,0x7d,0x93,
+0x68,0xdd,0xcb,0x65,0x1a,0xb4,0x99,0x7e,0x5b,0x81,0xcb,0x9c,0xba,0x22,0x3a,0x93,
+0x40,0xb8,0x70,0x0f,0xd7,0x39,0x42,0x34,0x77,0xe9,0x89,0x28,0x2d,0xe7,0x6e,0x20,
+0xb4,0xc1,0x2a,0x7d,0x9b,0x69,0x3e,0xbc,0xf4,0xf5,0xf4,0x7c,0x31,0xf2,0x0b,0x15,
+0x8c,0x0b,0x21,0x08,0x47,0xd9,0xd2,0xae,0xd2,0xa6,0x59,0xfb,0x36,0x06,0xc6,0xb1,
+0x38,0x8d,0x30,0x6c,0xb7,0xc3,0x8f,0x64,0xb3,0x1f,0xfa,0xd3,0xd1,0xc9,0x24,0xd9,
+0xf4,0xd3,0x21,0x44,0x9d,0x74,0x7d,0xcd,0xc6,0xb9,0xd2,0xba,0x5e,0x99,0x77,0x00,
+0x42,0x72,0x8b,0x99,0x07,0x68,0x05,0x27,0x52,0xed,0x07,0xb6,0xf6,0x6a,0xd3,0x1f,
+0xd8,0xf4,0xd5,0xb6,0xaf,0x6d,0x81,0x11,0x72,0x04,0x78,0x15,0x42,0x7e,0xff,0x85,
+0xee,0x26,0x78,0x52,0x69,0xd0,0x73,0xf4,0xd5,0x78,0x5a,0x8d,0x6d,0x6f,0xa1,0x40,
+0x3c,0xcb,0x5c,0x61,0x2f,0x67,0xec,0xe0,0x5c,0x1b,0xe8,0x7a,0x57,0x9a,0x51,0x77,
+0x8e,0xeb,0x30,0x4c,0xd6,0x9d,0xf7,0xe5,0x88,0xe5,0xc2,0xc3,0x38,0x0f,0xc3,0xcc,
+0xf4,0x7c,0x84,0xc2,0x33,0xac,0xd2,0x20,0x43,0xb0,0xd3,0x6e,0x9b,0x95,0xe3,0x30,
+0x88,0xc0,0xbc,0xb7,0xdc,0xf2,0x8e,0xff,0x98,0x77,0xf2,0xc9,0xbc,0x3b,0x98,0x31,
+0x94,0x3c,0x67,0x8e,0xfb,0x8c,0x49,0xc0,0xd2,0x20,0xcc,0x40,0x0b,0x69,0x08,0x35,
+0xbc,0x92,0xc2,0x7d,0x25,0x66,0xff,0x9e,0x77,0x60,0x19,0xa6,0xd6,0xd2,0x4c,0xd3,
+0x8a,0x72,0x6b,0x44,0x25,0x01,0xa8,0x75,0xbf,0x81,0x81,0x32,0xd3,0xbc,0xd2,0xa2,
+0xc4,0xc4,0xfe,0x13,0xef,0xf4,0xd3,0x78,0x47,0xf7,0xf1,0x8e,0xee,0xe3,0x1d,0xfd,
+0x27,0xbc,0xe3,0xfc,0x5e,0xde,0xf1,0x3b,0xbc,0x3b,0x97,0xbf,0x6e,0x54,0x1a,0x2e,
+0x9f,0x9f,0x00,0x00,0x00,0xff,0xff,0x03,0x00,0xe5,0xbe,0xed,0xcc,0x2a,0x10,0x73,
+0x9e,0x84,0x13,0x2e,0x27,0xe1,0x8d,0x6f,0xf8,0x9e,0xae,0xd0,0x0a,0x8f,0x2a,0xca,
+0xf7,0x78,0xda,0xcb,0xcf,0x4b,0x2d,0x29,0xcf,0x2f,0xc9,0x28,0x4a,0x4d,0xe5,0x02,
+0x00,0x21,0x4c,0x04,0xbf,0x78,0xda,0x4b,0xcb,0x2f,0x2d,0x4a,0xcb,0x2c,0x4b,0x2d,
+0xce,0xac,0xe0,0x02,0x00,0x20,0xfa,0x04,0xc5
+};
+
enum enc {
GZIP,
BZIP2
@@ -685,6 +796,55 @@ static void verify(unsigned char *d, size_t s,
free(buff);
}
+static void verifyB(unsigned char *d, size_t s) {
+ struct archive* a;
+ struct archive_entry *entry = NULL;
+ size_t buf_size;
+ unsigned char *buf;
+
+ assert((a = archive_read_new()) != NULL);
+
+ if(ARCHIVE_OK != archive_read_support_filter_gzip(a)) {
+ skipping("Unsupported gzip");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+
+ if(ARCHIVE_OK != archive_read_support_filter_bzip2(a)) {
+ skipping("Unsupported bzip2");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+
+ if(ARCHIVE_OK != archive_read_support_format_xar(a)) {
+ skipping("Unsupported xar");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+
+ assertA(0 == archive_read_open_memory(a, d, s));
+
+ // f1, content "onetwothree\n", size 12 bytes
+ assertA(0 == archive_read_next_header(a, &entry));
+ buf_size = (size_t) archive_entry_size(entry);
+ assertA(buf_size == 12);
+ buf = (unsigned char*) malloc(buf_size);
+ assertA(NULL != buf);
+ assertA(buf_size == (size_t) archive_read_data(a, buf, buf_size));
+ free(buf);
+
+ // f2, content "fourfivesix\n", size 12 bytes
+ assertA(0 == archive_read_next_header(a, &entry));
+ buf_size = (size_t) archive_entry_size(entry);
+ assertA(buf_size == 12);
+ buf = (unsigned char*) malloc(buf_size);
+ assertA(NULL != buf);
+ assertA(buf_size == (size_t) archive_read_data(a, buf, buf_size));
+ free(buf);
+
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
+
DEFINE_TEST(test_read_format_xar)
{
verify(archive1, sizeof(archive1), verify0, verify1, GZIP);
@@ -698,5 +858,6 @@ DEFINE_TEST(test_read_format_xar)
verify(archive9, sizeof(archive9), verify0, NULL, GZIP);
verify(archive10, sizeof(archive10), verify0, NULL, GZIP);
verify(archive11, sizeof(archive11), verify0, NULL, GZIP);
+ verify(archive12, sizeof(archive12), verify12, NULL, GZIP);
+ verifyB(archive13, sizeof(archive13));
}
-
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip.c b/archivers/libarchive/files/libarchive/test/test_read_format_zip.c
index 6cc25a6676f..b6e957a96ce 100644
--- a/archivers/libarchive/files/libarchive/test/test_read_format_zip.c
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip.c
@@ -26,6 +26,76 @@
#include "test.h"
__FBSDID("$FreeBSD: head/lib/libarchive/test/test_read_format_zip.c 189482 2009-03-07 03:30:35Z kientzle $");
+#define __LIBARCHIVE_BUILD
+#include <archive_crc32.h>
+
+static
+int extract_one(struct archive* a, struct archive_entry* ae, uint32_t crc)
+{
+ la_ssize_t fsize, bytes_read;
+ uint8_t* buf;
+ int ret = 1;
+ uint32_t computed_crc;
+
+ fsize = (la_ssize_t) archive_entry_size(ae);
+ buf = malloc(fsize);
+ if(buf == NULL)
+ return 1;
+
+ bytes_read = archive_read_data(a, buf, fsize);
+ if(bytes_read != fsize) {
+ assertEqualInt(bytes_read, fsize);
+ goto fn_exit;
+ }
+
+ computed_crc = crc32(0, buf, fsize);
+ assertEqualInt(computed_crc, crc);
+ ret = 0;
+
+fn_exit:
+ free(buf);
+ return ret;
+}
+
+static
+int extract_one_using_blocks(struct archive* a, int block_size, uint32_t crc)
+{
+ uint8_t* buf;
+ int ret = 1;
+ uint32_t computed_crc = 0;
+ la_ssize_t bytes_read;
+
+ buf = malloc(block_size);
+ if(buf == NULL)
+ return 1;
+
+ while(1) {
+ bytes_read = archive_read_data(a, buf, block_size);
+ if(bytes_read == ARCHIVE_RETRY)
+ continue;
+ else if(bytes_read == 0)
+ break;
+ else if(bytes_read < 0) {
+ /* If we're here, it means the decompressor has failed
+ * to properly decode test file. */
+ assertA(0);
+ ret = 1;
+ goto fn_exit;
+ } else {
+ /* ok */
+ }
+
+ computed_crc = crc32(computed_crc, buf, bytes_read);
+ }
+
+ assertEqualInt(computed_crc, crc);
+ ret = 0;
+
+fn_exit:
+ free(buf);
+ return ret;
+}
+
/*
* The reference file for this has been manually tweaked so that:
* * file2 has length-at-end but file1 does not
@@ -41,7 +111,7 @@ verify_basic(struct archive *a, int seek_checks)
int64_t o;
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
- assertEqualString("ZIP 1.0 (uncompressed)", archive_format_name(a));
+ assertEqualString("ZIP 1.0 (uncompressed)", archive_format_name(a));
assertEqualString("dir/", archive_entry_pathname(ae));
assertEqualInt(1179604249, archive_entry_mtime(ae));
assertEqualInt(0, archive_entry_size(ae));
@@ -54,7 +124,7 @@ verify_basic(struct archive *a, int seek_checks)
assertEqualInt((int)s, 0);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
- assertEqualString("ZIP 2.0 (deflation)", archive_format_name(a));
+ assertEqualString("ZIP 2.0 (deflation)", archive_format_name(a));
assertEqualString("file1", archive_entry_pathname(ae));
assertEqualInt(1179604289, archive_entry_mtime(ae));
if (seek_checks)
@@ -74,7 +144,7 @@ verify_basic(struct archive *a, int seek_checks)
}
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
- assertEqualString("ZIP 2.0 (deflation)", archive_format_name(a));
+ assertEqualString("ZIP 2.0 (deflation)", archive_format_name(a));
assertEqualString("file2", archive_entry_pathname(ae));
assertEqualInt(1179605932, archive_entry_mtime(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
@@ -96,7 +166,7 @@ verify_basic(struct archive *a, int seek_checks)
assert(archive_errno(a) != 0);
}
assertEqualInt(ARCHIVE_EOF, archive_read_next_header(a, &ae));
- assertEqualString("ZIP 2.0 (deflation)", archive_format_name(a));
+ assertEqualString("ZIP 2.0 (deflation)", archive_format_name(a));
/* Verify the number of files read. */
failure("the archive file has three files");
assertEqualInt(3, archive_file_count(a));
@@ -312,3 +382,537 @@ DEFINE_TEST(test_read_format_zip)
test_extract_length_at_end();
test_symlink();
}
+
+DEFINE_TEST(test_read_format_zip_ppmd_one_file)
+{
+ const char *refname = "test_read_format_zip_ppmd8.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ extract_reference_file(refname);
+
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (ppmd-1)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0xBA8E3BAA));
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_ppmd_one_file_blockread)
+{
+ const char *refname = "test_read_format_zip_ppmd8.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ extract_reference_file(refname);
+
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (ppmd-1)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 13, 0xBA8E3BAA));
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_ppmd_multi)
+{
+ const char *refname = "test_read_format_zip_ppmd8_multi.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ extract_reference_file(refname);
+
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (ppmd-1)", archive_format_name(a));
+ assertEqualString("smartd.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0x8DD7379E));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (ppmd-1)", archive_format_name(a));
+ assertEqualString("ts.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0x7AE59B31));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (ppmd-1)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0xBA8E3BAA));
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_ppmd_multi_blockread)
+{
+ const char *refname = "test_read_format_zip_ppmd8_multi.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ extract_reference_file(refname);
+
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (ppmd-1)", archive_format_name(a));
+ assertEqualString("smartd.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 12, 0x8DD7379E));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (ppmd-1)", archive_format_name(a));
+ assertEqualString("ts.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 13, 0x7AE59B31));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (ppmd-1)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 14, 0xBA8E3BAA));
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_lzma_one_file)
+{
+ const char *refname = "test_read_format_zip_lzma.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping("lzma reading not fully supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0xBA8E3BAA));
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_lzma_one_file_blockread)
+{
+ const char *refname = "test_read_format_zip_lzma.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping("lzma reading not fully supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 13, 0xBA8E3BAA));
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_lzma_multi)
+{
+ const char *refname = "test_read_format_zip_lzma_multi.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping("lzma reading not fully supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a));
+ assertEqualString("smartd.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0x8DD7379E));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a));
+ assertEqualString("ts.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0x7AE59B31));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0xBA8E3BAA));
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_lzma_multi_blockread)
+{
+ const char *refname = "test_read_format_zip_lzma_multi.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping("lzma reading not fully supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a));
+ assertEqualString("smartd.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 12, 0x8DD7379E));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a));
+ assertEqualString("ts.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 13, 0x7AE59B31));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 14, 0xBA8E3BAA));
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+
+DEFINE_TEST(test_read_format_zip_bzip2_one_file)
+{
+ const char *refname = "test_read_format_zip_bzip2.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_bzip2(a)) {
+ skipping("bzip2 is not fully supported on this platform");
+ archive_read_close(a);
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 4.6 (bzip)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0xBA8E3BAA));
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_bzip2_one_file_blockread)
+{
+ const char *refname = "test_read_format_zip_bzip2.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_bzip2(a)) {
+ skipping("bzip2 is not fully supported on this platform");
+ archive_read_close(a);
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 4.6 (bzip)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 13, 0xBA8E3BAA));
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_bzip2_multi)
+{
+ const char *refname = "test_read_format_zip_bzip2_multi.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_bzip2(a)) {
+ skipping("bzip2 is not fully supported on this platform");
+ archive_read_close(a);
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 4.6 (bzip)", archive_format_name(a));
+ assertEqualString("smartd.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0x8DD7379E));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 4.6 (bzip)", archive_format_name(a));
+ assertEqualString("ts.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0x7AE59B31));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 4.6 (bzip)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0xBA8E3BAA));
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_bzip2_multi_blockread)
+{
+ const char *refname = "test_read_format_zip_bzip2_multi.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_bzip2(a)) {
+ skipping("bzip2 is not fully supported on this platform");
+ archive_read_close(a);
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 4.6 (bzip)", archive_format_name(a));
+ assertEqualString("smartd.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 12, 0x8DD7379E));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 4.6 (bzip)", archive_format_name(a));
+ assertEqualString("ts.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 13, 0x7AE59B31));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 4.6 (bzip)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 14, 0xBA8E3BAA));
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_xz_multi)
+{
+ const char *refname = "test_read_format_zip_xz_multi.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping("lzma reading not fully supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 2.0 (xz)", archive_format_name(a));
+ assertEqualString("bash.bashrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0xF751B8C9));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 2.0 (xz)", archive_format_name(a));
+ assertEqualString("pacman.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0xB20B7F88));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 2.0 (xz)", archive_format_name(a));
+ assertEqualString("profile", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0x2329F054));
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_xz_multi_blockread)
+{
+ const char *refname = "test_read_format_zip_xz_multi.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping("lzma reading not fully supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 2.0 (xz)", archive_format_name(a));
+ assertEqualString("bash.bashrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 12, 0xF751B8C9));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 2.0 (xz)", archive_format_name(a));
+ assertEqualString("pacman.conf", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 13, 0xB20B7F88));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 2.0 (xz)", archive_format_name(a));
+ assertEqualString("profile", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 14, 0x2329F054));
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_ppmd8_crash_1)
+{
+ const char *refname = "test_read_format_zip_ppmd8_crash_2.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+ char buf[64];
+
+ extract_reference_file(refname);
+
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 100));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+
+ /* This file shouldn't be properly decompressed, because it's invalid.
+ * However, unpacker should return an error during unpacking. Without the
+ * proper fix, the unpacker was entering an unlimited loop. */
+ assertEqualIntA(a, ARCHIVE_FATAL, archive_read_data(a, buf, 1));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_bz2_hang_on_invalid)
+{
+ const char *refname = "test_read_format_zip_bz2_hang.zip";
+ struct archive *a;
+ struct archive_entry *ae;
+ char buf[8];
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_bzip2(a)) {
+ skipping("bzip2 is not fully supported on this platform");
+ archive_read_close(a);
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+
+ /* The file `refname` is invalid in this case, so this call should fail.
+ * But it shouldn't crash. */
+ assertEqualIntA(a, ARCHIVE_FATAL, archive_read_data(a, buf, 64));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_ppmd8_crash_2)
+{
+ const char *refname = "test_read_format_zip_ppmd8_crash_2.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+ char buf[64];
+
+ extract_reference_file(refname);
+
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+
+ /* The file `refname` is invalid in this case, so this call should fail.
+ * But it shouldn't crash. */
+ assertEqualIntA(a, ARCHIVE_FATAL, archive_read_data(a, buf, 64));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_lzma_alone_leak)
+{
+ const char *refname = "test_read_format_zip_lzma_alone_leak.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+ char buf[64];
+
+ /* OSSFuzz #14470 sample file. */
+ extract_reference_file(refname);
+
+ assert((a = archive_read_new()) != NULL);
+ if(ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping("lzma reading is not fully supported on this platform");
+ archive_read_close(a);
+ return;
+ }
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+
+ /* Extraction of this file should fail, because the sample file is invalid.
+ * But it shouldn't crash. */
+ assertEqualIntA(a, ARCHIVE_FAILED, archive_read_data(a, buf, sizeof(buf)));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+
+ /* Extraction of this file should fail, because the sample file is invalid.
+ * But it shouldn't crash. */
+ assertEqualIntA(a, ARCHIVE_FATAL, archive_read_data(a, buf, sizeof(buf)));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+
+ /* This testcase shouldn't produce any memory leaks. When running test
+ * suite under Valgrind or ASan, the test runner won't return with
+ * exit code 0 in case if a memory leak. */
+}
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_7075_utf8_paths.c b/archivers/libarchive/files/libarchive/test/test_read_format_zip_7075_utf8_paths.c
new file mode 100644
index 00000000000..7b78770aae4
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_7075_utf8_paths.c
@@ -0,0 +1,102 @@
+/*-
+ * Copyright (c) 2003-2007 Tim Kientzle
+ * Copyright (c) 2011 Michihiro NAKAJIMA
+ * Copyright (c) 2019 Mike Frysinger
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "test.h"
+__FBSDID("$FreeBSD$");
+
+#include <locale.h>
+
+static void
+verify(struct archive *a) {
+ struct archive_entry *ae;
+ const char *p;
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assert((p = archive_entry_pathname_utf8(ae)) != NULL);
+ assertEqualUTF8String(p, "File 1.txt");
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assert((p = archive_entry_pathname_utf8(ae)) != NULL);
+#if defined(__APPLE__)
+ /* Compare NFD string. */
+ assertEqualUTF8String(p, "File 2 - o\xCC\x88.txt");
+#else
+ /* Compare NFC string. */
+ assertEqualUTF8String(p, "File 2 - \xC3\xB6.txt");
+#endif
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assert((p = archive_entry_pathname_utf8(ae)) != NULL);
+#if defined(__APPLE__)
+ /* Compare NFD string. */
+ assertEqualUTF8String(p, "File 3 - a\xCC\x88.txt");
+#else
+ /* Compare NFC string. */
+ assertEqualUTF8String(p, "File 3 - \xC3\xA4.txt");
+#endif
+
+ /* The CRC of the filename fails, so fall back to CDE. */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assert((p = archive_entry_pathname_utf8(ae)) != NULL);
+ assertEqualUTF8String(p, "File 4 - xx.txt");
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+}
+
+DEFINE_TEST(test_read_format_zip_utf8_paths)
+{
+ const char *refname = "test_read_format_zip_7075_utf8_paths.zip";
+ struct archive *a;
+ char *p;
+ size_t s;
+
+ extract_reference_file(refname);
+
+ if (NULL == setlocale(LC_ALL, "en_US.UTF-8")) {
+ skipping("en_US.UTF-8 locale not available on this system.");
+ return;
+ }
+
+ /* Verify with seeking reader. */
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 10240));
+ verify(a);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+
+ /* Verify with streaming reader. */
+ p = slurpfile(&s, refname);
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, read_open_memory(a, p, s, 31));
+ verify(a);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_free(a));
+ free(p);
+}
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu
new file mode 100644
index 00000000000..332f996898e
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu
@@ -0,0 +1,20 @@
+begin 644 test_read_format_zip_7075_utf8_paths.zip
+M4$L#!!0````(`,$^9D5BZ95P"P````D````*````1FEL92`Q+G1X=`M)+2Y1
+M2,O,204`4$L#!!0````(`,$^9D5BZ95P"P````D````/`!@`1FEL92`R("T@
+M>'@N='AT=7`4``$NSPQQ1FEL92`R("T@P[8N='AT"TDM+E%(R\Q)!0!02P,$
+M%`````@`P3YF16+IE7`+````"0````\`&`!&:6QE(#,@+2!X>"YT>'1U<!0`
+M`1"DSIY&:6QE(#,@+2##I"YT>'0+22TN44C+S$D%`%!+`P04````"`#!/F9%
+M8NF5<`L````)````#P`8`$9I;&4@-"`M('AX+G1X='5P%``!G[AP'$9I;&4@
+M-"`M(,.E+G1X=`M)+2Y12,O,204`4$L!`A\`%`````@`P3YF16+IE7`+````
+M"0````H`)``````````@`````````$9I;&4@,2YT>'0*`"````````$`&``Q
+M6UASCOG/`5^OQVV.^<\!7Z_';8[YSP%02P$"'P`4````"`#!/F9%8NF5<`L`
+M```)````#@`\`````````"`````S````1FEL92`R("T@E"YT>'0*`"``````
+M``$`&``Q6UASCOG/`2M.B72.^<\!*TZ)=([YSP%U<!0``2[/#'%&:6QE(#(@
+M+2##MBYT>'102P$"'P`4````"`#!/F9%8NF5<`L````)````#@`\````````
+M`"````"#````1FEL92`S("T@A"YT>'0*`"````````$`&``Q6UASCOG/`5<$
+M&W>.^<\!5P0;=X[YSP%U<!0``1"DSIY&:6QE(#,@+2##I"YT>'102P$"'P`4
+M````"`#!/F9%8NF5<`L````)````#@`\`````````"````#3````1FEL92`T
+M("T@ABYT>'0*`"````````$`&``Q6UASCOG/`6#)ZG:.^<\!8,GJ=H[YSP%U
+M<!0``9^X<!Q&:6QE(#0@+2##I2YT>'102P4&``````0`!`#$`0``(P$`````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_bz2_hang.zip.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_bz2_hang.zip.uu
new file mode 100644
index 00000000000..5193a77aee3
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_bz2_hang.zip.uu
@@ -0,0 +1,5 @@
+begin 644 test_read_format_zip_bz2_hang.zip
+M4$L#!)LP,#`,,#`P,#`P,#`P,#`P,#`P,#`$`!P`,#`P,#`P"0`P,#`P,#`P
+1,#!U>`L`8(0P,#`P,#`P,#``
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_bzip2.zipx.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_bzip2.zipx.uu
new file mode 100644
index 00000000000..6d9884aeddf
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_bzip2.zipx.uu
@@ -0,0 +1,19 @@
+begin 644 bzip2.zipx
+M4$L#!"X#```,`#TQD4VJ.XZZ-`(``)`#```%````=FEM<F-"6F@Y,4%9)E-9
+MYPC!D@``3%^``!!TY^!2(B.7`+__W^%``C$[0!AJ>E,ID:&U-'E`T&C1IIIZ
+M@8&J>$9":`IZ@``'J:/2&#```````!@`2FB$T:31D9"F@8FC0`\H^:+Y;81F
+M6OH?UN<?%+%N:%31B%P(0RVO1<SQJ<1.]SV*&^IH14$2>^\U&IFQOP9(.Z29
+MPY<T(I:;+;+%&$B@2M1Y72W?=(*2WDS,\HT0@,EKOQMPK@2EG,=`4I\L2`([
+M5,]S''3%_7<)2">-_:/D\-$@RAM/2I>(FNV$2K!!&6I"Q+LXG0-YLG/4-JQE
+M=%^\,6JL1H*""1!1W]<O1I!W61YH<W#N(;L:?>4\/.E))/*(3J)$L1_D*SPD
+MAZY)I5-#7@)=-5H06@2PP-)YSB5D!.3J63\EJ*\X%RMDE]>>,6XG5O@<^@:T
+MT671Y,.:/=ICJ(=@\88>!>M^W)$;,QY(*`F*%Q2YZ^%TF$V^/85:V;L\W53/
+M?9[-IX&M.O38C\;C@Q';$E9[,C'?<#304$$9O&4U<2"$^;O(<O4$WDF@5")3
+M:<V%Q;W"+5#B4$L8:VN_J<@<6I7.ME"(6?"""#O+0A5/?<$^+"0D5-NSRK//
+M"%<_?]^4-QYYJ,(+(C;@Y3')J>0X:)KR2UT?=.E*K!>,09(4\>BYUO&*8;D4
+MY=51BK5L/;$+WB"S8Z-?)M+GT/]^;,7$S'N0)))KF]$Z(GL[.L=F*G#!4NC)
+M4)I$P%W)%.%"0YPC!DA02P$"/P,N`P``#``],9%-JCN.NC0"``"0`P``!0`D
+M`````````""`I($`````=FEM<F,*`"````````$`&```EU'!QI74`8#"I,S&
+AE=0!`)=1P<:5U`%02P4&``````$``0!7````5P(`````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_bzip2_multi.zipx.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_bzip2_multi.zipx.uu
new file mode 100644
index 00000000000..1802ac0f39d
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_bzip2_multi.zipx.uu
@@ -0,0 +1,96 @@
+begin 644 test_read_format_zip_bzip2_multi.zipx
+M4$L#!"X#```,`)$XD4V>-]>-Q`H``"L:```+````<VUA<G1D+F-O;F9"6F@Y
+M,4%9)E-9)%%XJ@`"I5^`4!!,Y__W?^??]+_O__1@"^U]9V%K:9UFZ$O2A7K'
+M77-*UK(BDFF*DG<-30(`:9(V@@-2?JFGB)Z(TVIH9J>H'J-##(C0U&1)Y*>F
+MF4:'E-&0:!H``-``)30B!0]3TFDVD])ZF(::`!Z@`T9#30,)"0@FBGD*9-IZ
+MIZGE,F@9``-``&0'`````#````````)$00FC1,(TE/T:,HTVJ?J3/5-#,4]3
+MU#TADVAYI!A\^>RT<GE6YYS5N0CDH-W\T^/EI(<6MF;^`>Q(BD3$3I$[^,/;
+MLS`?JD6R.G5Z9H!*U7PV]92S^P:OR\HL0A0_3>$BI8)(/R)[BOOLC2%8YJD(
+MA.HIB.`H&#CG`1Q7XZ?+[_/^7_[H%_86(A9>\@A,<LAFVO+>_,XZ=,XL5W'7
+MHP4M+H9TD.>'-*H@_0+C17D%)P0)RW]IX%[$"C`LP1H=G0_&E!1":MS%AMXQ
+M.;)R8XI%.5\07+<T%D;E`.H3-$BPXHC9O9][@4+5@?#H]U\C:>:U'.MSO0WA
+M_'JHZ5GH`I2IS+,0&673'.$+E#O<4'!QIOJ(=A]MS$!DF&L:[UWD`N@'J&ON
+MK"9F:A.4,3W/HWR,FFXKDW<H8/K$-R-J7+-EF/I^Y'"+NG5CCEZ+0:?KD<+3
+M`"I<U;86QQF!%.4@B\T!6@0*$:O*&.M*[F3XHCB!PDNC=;?B?(XH83B<VJ3,
+M@\!-,#RI8$6_#3WTX6'H[6MHG!,&=ACHLI1OX975N=BR)Q(P3"R]T*(N@FVS
+MEY4+OL3<O1,KCHTPOX=VJF:N9O,42K4RCC=]+6O5$9[3/FKPO@0(HFMMCG(M
+MS(TAPC;*E<FMNE0SN-MRQGSE<D$G2%7;F3AT+J@5+!!70<<",M>_PF?19FN:
+M8JZ13*&(2TCX35$",$])GPS2BLBY&_H+ZVL;>UD^#7W[$P11S-:X+;I&4P_2
+MY2FF=^Q>)*S'RAW&B*<0LART09,I)(!+E@9";HI&D+G>(HXB:0(%/23%!+S@
+M:NR/5*I%\9CK3:PVI<JJC%D=$J4%/&554*(4_,7#440X'":4,8L63JN=>^LQ
+MG?A&-RQT6VZ[1QPG2Y9UVU<7W0N_@W]>`:ZV*-IMC1AC'"5PL)0>9PPF\/OD
+MXXHMUZ\<Z25(;=^+RI'$VR3AK-]]ZYZ5:F:A:K!+N/1,2[.%G;@BE(-[@.1`
+M22/B@`/?%#.CZ)`,.^U9$,*\\.[JTU#1MZ7P>%[^LVOK%3L]),1F)*MOQ5)H
+MBOICX8!01L:?$[E<$R]4`!$&F!"N^Z]2A2JH&\;#/"R\MG<`!XM)L2.#%FT@
+MI$"[T#%/63SY#K=LX#RSQ*%:^J%L1'HN2F*:.2LQ2X?"^Y^<9@U@PV(.4E%C
+MNS^(@N"/+X8L:9,0T^E]7FZXBP#;&@K7#\.W[MOUG8-`-,<'O._DJ$2@7*?N
+M#ZO8W/#Q7.=4KXGTY)7:1_NJ7-3FF\<6*$<^N]+-!C)W4+U60F$@>:,&%)NE
+M6U9J0*F"F4!.R,Y`.G*"*P_*(P>-<7WV6=I7*E]98+HG":L0P4Y,?%RY^X[*
+MDSY./:P;H^X)PU&L=#"2/IS$=1]X>MB:/!;68(&.EX`-X^"ZW_F;B,/8(F45
+M`_?U2XOBQ%&$HQ1YCTEC[_A42U:75Z>4-MI3.*/X>72/`C"+5Z>0B4C49O3A
+M'N8'1IOJC95M$"-@1RC6(E"P.0[ZZ:;J?E0+#0?LP-6OA,=$^`?$]R<D,R:6
+M&AO6\BZF>)HW%K-',>W@ZBCI&CX:1\Q,YOY&7QLLV_J,<-^S+:AAO&'.A;*V
+M3AQROQ<,BPB$?,M'!#1QR@/4P#T<S7`8"66LBP\H218.SMGB,,\1%E*\/0*#
+MQ_'#_%KC&V`62ZV)_`]OL^PI[Y+3Y'D:D>M5"<!K'\`NAZ/[F;AK;1&O\DA=
+M0]#/L9O[-T_:F38NS8'QH!;O!*9%KW46U%$P7^K@8H&S*H\KD-/C1E92^52F
+M)F1C$@7G-V(O%9#LFI%D%E!$P!\'1B(0-?))-42@&?](DR&2ZE`T8XW\%:FB
+MF*Z1QI590R+_@5,W2:2C-`LE@8*Q&:H8NM`['><*D.$6U5>6NB0:@2#RD1AD
+M(26E6M&U7;I&M?><,-FD48N@:,:2[U9AD#8DO`F8G`NH2VG:1>/.?`E4V(J^
+M#5)1$;.G/E?/U7S,RZJL\[5*#)Y+2^&5-1.L.G9B!:4)5`06C6IFT)6E9!%+
+M2NC400RE=1Y`*MU7P;V<R<"<-'X?;X97UARL<KW%NB7,<_XCW;#Y=&J42S?<
+MCYV65#`1E'MK>=>_94Q:13C>/8$;NI99OUE6QCKTH&-VKEJ+?SICS8UQ>&55
+MS!AN47T#J*?QEQ6,M2+`@9;Z#.*GM;18!J.<)J@Q;$1#.I*.KS4[,-,#$>-\
+M)PO&"I/*D7`.K'08;Q%TA8:$`G^HT8=;C3N5_4;IF)[F0N$3TDH*Q0-P<[42
+M,33G53,R)8(253>'`I(/(`C4Y$P=<ZI3<Q9F-%6NDX[@@<-.#$:"ZHK=Y"2W
+ML':Y1S;)()A8F:NQI,Z6<4EA=#ZP7K"X9XEI=Y1^>LZC+Z#,LC!<`8.=$0&&
+MHL)>D\@AT(1A;6.-(URT`6J-@0P%Y020G3VP:QRCZPM[@QB;&[&]I'1L3HG6
+MHMV_<`9H[#0AJH/K\46RSPQC,;0Z:L!U8.MI-<Z53:%EM8O;@;NC/2H=';XV
+M-Z@X,TK*TU++@]A*YJ;NAQ6:N!AY.&J8HED08VR&!22SM(6OK:A%ET7;U&!4
+MVK6\B1<8S:RZ$2&P0S%>>!:8E!XF+SMT&6HO@%[!H\1%0L[N;T&#(0;8].D%
+M:TK%I(F/ON*[L1CE)4QE?&7UU65^]]5"5--B;I#AF:-,&WEQ%G1QM<7=I+I-
+M#%HED2A!O:62V29]+QED;,>@Q1/-)PPU+A@W!SW0+W/DU,0V*IU>![3,1S&>
+MJH>)MQ]&0><M19/ROSLZEN3#B_9J<R3UR(K`N`N21DVKG"X%,+[7TX+(=*P1
+MNJH*&-M^.1NI8I=_4LF'\I+3TCS]0COXP9&VQ[OL=S+9D5III],[VS7W')'H
+MV^<R#4%Y)U(&T?;3\\!'6[>D=NTHM!=_;/K:@AM+BTH-:,C49$_(R)IC&^1Y
+M[EI=1!L8O8:A+.F,:91'!%LGX.Y*[9W'8Q>2DN<Q$3J253N=[B+$M5`,`ZAP
+MX#7D2G.9Q9&85E=C::&FQI#=#:77?K,:7Y2%%""A5E:3S95'D*ZI%['/%R@N
+MPC:9L35R#[8BW=,#-3+S!A7!WNSP."]&D&T:/,C4#0L]K,!G8G9),'9JIE".
+MT&JZK3L";)&ZF\:#Z+0V:/`NPWLAN#;)1&)7&:):CTRMF6MYRNVWEM,W"3=O
+M9OBR&5B:>$BIBQ<M:6NS/6M-<.;%:!:CM-Q:7P+F[9<^U)ITR0:D$:JK$S%:
+M9V8;[^0=S9:"MAG>(Y()FJNVR"%T-;E6?@6^'&XMHR)AAWR$C9972+M#HSN-
+M);+!>$HVAW9>(FP:U,1BUS180R6S:<$UD99O<NY=G[''Z\C9AG)U+.%99@9C
+M;.=-Q(V\S5@<WPQZ(`71O7+I2%C0S36*BC[[+MW<$P5LFC!]"[=Y5+L:1H65
+MAB'!(B:A*;VK2KG,`:&Z<:9\L7<@'RG1`XHDFZ*SB=DQ(`&LRTFHZ?^+N2*<
+M*$@2*+Q5`%!+`P0N`P``#`"(.)%-,9OE>L@!``!4`P``!P```'1S+F-O;F9"
+M6F@Y,4%9)E-9[2!3B0``35^``!1(A>=")0$"`+__W^!``=V;:TML-3U*>D]I
+M3`F]4]-(T9`T:&@T8I`F(U'ZIZ@!H`>IZ&`````P``"4T4R9-3U`$T]$`,0:
+M9KMEA9T)[OUF#<]_H_:R!%VW(Z5<8GI,92Q$\@_99'.V;0!9M_JQW(Q83@(>
+MU(&RK]97O.4,(?<D&2+:<8T+C,9*N8XBL0!($BWA2>9Q\O->C6^K@,2&/*Q^
+MQ&&;:95MR[%C&6KSOTJXV':CWZ0#H?FO+]L:K$L-@\J??66K"[C''`Q(05A5
+MAA`H<]68]Z8WD3,92%/*1-[+TH^&FHBX0;F(=TXT`&\A85\I0".^@K=W'6BV
+M6W7I=FG(:-GP/>J!T.)K9&E&`70E\*O7<@B"XC8N],ESUC>J<#0$&LF`$Q"I
+MPFSXM(AMXP]!B.B$A)+*A@FQI7N,888C3<<1)$V8APW#69B,^)R&)J6R?!9U
+MVQ?F1G9TTEH&P"PV"U$F)!()!JGQ4/1670D)VLF!P-;I.\BHY"F((+!C$AZJ
+MZ4L(AR$T$'4N]0NK3DSCOKGQ@9(O?$J:V8>5Q'*QHI5Q[SIJ>$D/XNY(IPH2
+M':0*<2!02P,$+@,```P`/3&13:H[CKHT`@``D`,```4```!V:6UR8T)::#DQ
+M05DF4UGG",&2``!,7X``$'3GX%(B(Y<`O__?X4`",3M`&&IZ4RF1H;4T>4#0
+M:-&FFGJ!@:IX1D)H"GJ```>IH](8,```````&`!*:(31I-&1D*:!B:-`#RCY
+MHOEMA&9:^A_6YQ\4L6YH5-&(7`A#+:]%S/&IQ$[W/8H;ZFA%01)[[S4:F;&_
+M!D@[I)G#ES0BEILMLL482*!*U'E=+=]T@I+>3,SRC1"`R6N_&W"N!*6<QT!2
+MGRQ(`CM4SW,<=,7]=PE()XW]H^3PT2#*&T]*EXB:[81*L$$9:D+$NSB=`WFR
+M<]0VK&5T7[PQ:JQ&@H()$%'?UR]&D'=9'FAS<.XANQI]Y3P\Z4DD\HA.HD2Q
+M'^0K/"2'KDFE4T->`ETU6A!:!+#`TGG.)60$Y.I9/R6HKS@7*V27UYXQ;B=6
+M^!SZ!K319='DPYH]VF.HAV#QAAX%ZW[<D1LS'D@H"8H7%+GKX7283;X]A5K9
+MNSS=5,]]GLVG@:TZ]-B/QN.#$=L25GLR,=]P--!001F\935Q((3YN\AR]03>
+M2:!4(E-IS87%O<(M4.)02QAK:[^IR!Q:E<ZV4(A9\(((.\M"%4]]P3XL)"14
+MV[/*L\\(5S]_WY0W'GFHP@LB-N#E,<FIY#AHFO)+71]TZ4JL%XQ!DA3QZ+G6
+M\8IAN13EU5&*M6P]L0O>(+-CHU\FTN?0_WYLQ<3,>Y`DDFN;T3HB>SLZQV8J
+M<,%2Z,E0FD3`7<D4X4)#G",&2%!+`0(_`RX#```,`)$XD4V>-]>-Q`H``"L:
+M```+`"0`````````(("D@0````!S;6%R=&0N8V]N9@H`(````````0`8`(#N
+M7F'.E=0!`,YV<<Z5U`&`[EYASI74`5!+`0(_`RX#```,`(@XD4TQF^5ZR`$`
+M`%0#```'`"0`````````(("D@>T*``!T<RYC;VYF"@`@```````!`!@``/`\
+M5\Z5U`$`SG9QSI74`0#P/%?.E=0!4$L!`C\#+@,```P`/3&13:H[CKHT`@``
+MD`,```4`)``````````@@*2!V@P``'9I;7)C"@`@```````!`!@``)=1P<:5
+HU`&`0`0-QY74`0`TN_O&E=0!4$L%!@`````#``,`#0$``#$/````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_extra_padding.c b/archivers/libarchive/files/libarchive/test/test_read_format_zip_extra_padding.c
new file mode 100644
index 00000000000..54f7fa04ee8
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_extra_padding.c
@@ -0,0 +1,93 @@
+/*-
+ * Copyright (c) 2003-2018 Tim Kientzle
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "test.h"
+
+/*
+ * Test archive verifies that we ignore padding in the extra field.
+ *
+ * APPNOTE.txt does not provide any provision for padding the extra
+ * field, so libarchive used to error when there were unconsumed
+ * bytes. Apparently, some Zip writers do routinely put zero padding
+ * in the extra field.
+ *
+ * The extra fields in this test (for both the local file header
+ * and the central directory entry) are formatted as follows:
+ *
+ * 0000 0000 - unrecognized field with type zero, zero bytes
+ * 5554 0900 03d258155cdb58155c - UX field with length 9
+ * 0000 0400 00000000 - unrecognized field with type zero, four bytes
+ * 000000 - three bytes padding
+ *
+ * The two valid type zero fields should be skipped and ignored, as
+ * should the three bytes padding (which is too short to be a valid
+ * extra data object). If there were no errors and we read the UX
+ * field correctly, then we've correctly handled all of the padding
+ * fields above.
+ */
+
+
+static void verify(struct archive *a) {
+ struct archive_entry *ae;
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("a", archive_entry_pathname(ae));
+ assertEqualInt(AE_IFREG | 0664, archive_entry_mode(ae));
+ assertEqualInt(0x5c1558d2, archive_entry_mtime(ae));
+ assertEqualInt(0, archive_entry_ctime(ae));
+ assertEqualInt(0x5c1558db, archive_entry_atime(ae));
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+}
+
+DEFINE_TEST(test_read_format_zip_extra_padding)
+{
+ const char *refname = "test_read_format_zip_extra_padding.zip";
+ struct archive *a;
+ char *p;
+ size_t s;
+
+ extract_reference_file(refname);
+
+ /* Verify with seeking reader. */
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 7));
+ verify(a);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+
+ /* Verify with streaming reader. */
+ p = slurpfile(&s, refname);
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, read_open_memory(a, p, s, 3));
+ verify(a);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+
+ free(p);
+}
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_extra_padding.zip.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_extra_padding.zip.uu
new file mode 100644
index 00000000000..496bd3c4943
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_extra_padding.zip.uu
@@ -0,0 +1,7 @@
+begin 644 test_read_format_zip_extra_padding.zip
+M4$L#!`H``````"-=CTW$\L?V`@````(````!`!P`80````!55`D``])8%5S;
+M6!5<```$``````````!B"E!+`0(>`PH``````"-=CTW$\L?V`@````(````!
+M`!@```````$```"D@0````!A`````%54"0`#TE@57-M8%5P```0``````$L%
+3!@`````!``$`1P```#T`````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma.zipx.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma.zipx.uu
new file mode 100644
index 00000000000..24fdc8e7c28
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma.zipx.uu
@@ -0,0 +1,19 @@
+begin 644 lzma.zipx
+M4$L#!#\#```.`#TQD4VJ.XZZ.0(``)`#```%````=FEM<F,0`@4`70`0````
+M$0@$J,)\D;(#4L%<^$P5TO^CM0KI0HWG08B&_].4<,CJ")TW/L>)82Q1PWAL
+M+U`,N0L_$]^&650C/X$D6#4QFD$\A/"_![4!O/5O/!KH`WCQ*4?T2*]4P#/D
+M0'9I?EZG=N69Z0V;H0I=C<!C<J6O^834W097PY1$%=-++.YUA'!>P*$?".I\
+MGMG/80.A'^W>R4J'S/CZ%P`8`>F=R>R&R$2T@EM#X)"OQH1?A7,`:4IU9WV!
+M#2W*DXT',;.4YIN4A:-X)O=IREL201ZSOC=YSAU[C4-::/YV8\)%"L17+>VC
+M%/'B]ZCQN$2(Q*9*\KJZ`Y131`]5C&G';@1S-QES_RZF!2OX45@58+??ES%(
+MUJ<(\`11M$NO)HK#/MK-9RT"15.2I:IZN8<TJR>VTM1_?$G\L#BH67]$S%[4
+M%C-$\Q<+./&HV](4,7)OL-@C^M0F"2O!0N$OHOW54H87^QLBQVH*D%A<#SI%
+M/#+-5U(W';:KC)RE>0Y^5YI!RECQNR"R4.UW9IR!@:B!UB8?_D5$FT8YCJHJ
+M2[2"-&-_D2BJ6#XK[6G=%K"%;'^-+0]FHCY4ER#`^<I-M<!"D:-0H@);U"P"
+MPYX+4#8!&$7\M.+%%MZ:KQ2GX0<]$"P7F^HT)J5JM<$VO9/D[#7KZ\'FITL/
+MYIF"=GO+-L?F[8QS4KC7+=A)1`")V<.8DX629Q;;Y4XA\M-%O&MWC)^)`NO<
+M.J6(5V2UY9"I(C*QKA[Z#)-#XU!+`0(_`S\#```.`#TQD4VJ.XZZ.0(``)`#
+M```%`"0`````````(("D@0````!V:6UR8PH`(````````0`8``"74<'&E=0!
+F`)=1P<:5U`$`EU'!QI74`5!+!08``````0`!`%<```!<`@``````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma_alone_leak.zipx.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma_alone_leak.zipx.uu
new file mode 100644
index 00000000000..5fce2135506
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma_alone_leak.zipx.uu
@@ -0,0 +1,5 @@
+begin 644 test_read_format_zip_lzma_alone_leak.zipx
+M4$L#!"`@6B`.("`@("`@("`@%0```"`@("````4``0`!`"`@(`4``"``````
+J(/\@("`@("`@("!02P,$("`@(`X@(/________\@("`@("`@(``````@
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma_multi.zipx.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma_multi.zipx.uu
new file mode 100644
index 00000000000..22c4d5e831a
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_lzma_multi.zipx.uu
@@ -0,0 +1,95 @@
+begin 644 test_read_format_zip_lzma_multi.zipx
+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
+MX2^B_=52AA?[&R+':@J06%P/.D4\,LU74C<=MJN,G*5Y#GY7FD'*6/&[(+)0
+M[7=FG(&!J('6)A_^142;1CF.JBI+M((T8W^1**I8/BOM:=T6L(5L?XTM#V:B
+M/E27(,#YRDVUP$*1HU"B`EO4+`+#G@M0-@$81?RTXL46WIJO%*?A!ST0+!>;
+MZC0FI6JUP3:]D^3L->OKP>:G2P_FF8)V>\LVQ^;MC'-2N-<MV$E$`(G9PYB3
+MA9)G%MOE3B'RTT6\:W>,GXD"Z]PZI8A79+7ED*DB,K&N'OH,DT/C4$L!`C\#
+M/P,```X`D3B139XWUXV$"@``*QH```L`)``````````@@*2!`````'-M87)T
+M9"YC;VYF"@`@```````!`!@`@.Y>8<Z5U`&`[EYASI74`8#N7F'.E=0!4$L!
+M`C\#/P,```X`B#B133&;Y7J]`0``5`,```<`)``````````@@*2!K0H``'1S
+M+F-O;F8*`"````````$`&```\#Q7SI74`0#P/%?.E=0!`/`\5\Z5U`%02P$"
+M/P,_`P``#@`],9%-JCN.NCD"``"0`P``!0`D`````````""`I(&/#```=FEM
+M<F,*`"````````$`&```EU'!QI74`8!`!`W'E=0!`#2[^\:5U`%02P4&````
+/``,``P`-`0``ZPX`````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8.zipx.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8.zipx.uu
new file mode 100644
index 00000000000..4440e95b315
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8.zipx.uu
@@ -0,0 +1,17 @@
+begin 644 ppmd8.zipx
+M4$L#!#\#``!B`#TQD4VJ.XZZV`$``)`#```%````=FEM<F,'`"']JO"&\1[R
+M;;G)@`(8>EJ>3<8@F_*<(\B>K]4_(WC8#)`_QSG+`7`B&_11VIJ)@#(<W.9L
+M>K)_I8R^=`VUO2_S,1C=1CAU>-*`]CC+&6Q;EE'#CG-W=^[,F,+UR-TE(9,G
+M1_&$NYD`,5WY5QX7@%5XX-*7+7&#W'1#XF+"?6*U!H=B063.]NTA`1+&\J(K
+M&U]D<Z8#:-^E0@IRO9J$W&\^A>E8$ZYUU'UT\$!88I,6+(M/"=_+3@V5H+24
+MBA0>^0?[W07K"B%SQ&OA-R)S9W>DH,<4##E@?5YF:%K<JGI_YMJ^QT4/IK3'
+MME]>$?5U@W[IVG+2#8FC4'GT3-$L%_N,B$^)UY1GAD=.Z(HI#3[T"979&<`+
+M`S]9G+PI';5"==`18UE,>N"?>"_C"MSHX<[!&8$+A6U_7][TK*6.^\-O-UK!
+M`)>[*.D1:1H!I,?PEIPW,NQ5CCX2NCY+%UH"T5X!O$&=6+X#"()33:]FPF:F
+ME-O)\652#KD$^ZFBJ7K`55]R/A"OA"T7\R6K%B(2&6*/H0>*-:@<P:\X15#O
+M7`.(BCE?O\0!1%K[A;:`MWNF3\/K9SJ28+D-Z2I92^$J-BWY6";ANPDO&M><
+MJ2V9^KJSL+P4A&$`4$L!`C\#/P,``&(`/3&13:H[CKK8`0``D`,```4`)```
+M```````@@*2!`````'9I;7)C"@`@```````!`!@``)=1P<:5U`&`PJ3,QI74
+?`0"74<'&E=0!4$L%!@`````!``$`5P```/L!````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu
new file mode 100644
index 00000000000..fb6050fc086
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu
@@ -0,0 +1,4 @@
+begin 644 test_read_format_zip_ppmd8_crash_1.zipx
+K4$L'"(=02P,$\+N.O&*A>*\+."U``$H`````````@``````#````6(0`````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu
new file mode 100644
index 00000000000..58de4125866
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu
@@ -0,0 +1,4 @@
+begin 644 test_read_format_zip_ppmd8_crash_2.zipx
+L4$L'"(=02P,$\+N.O&*A>*\+.2U`@$H`````````@``````#````````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_multi.zipx.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_multi.zipx.uu
new file mode 100644
index 00000000000..6fadcea6493
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_ppmd8_multi.zipx.uu
@@ -0,0 +1,84 @@
+begin 644 test_read_format_zip_ppmd8_multi.zipx
+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
+"````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_read_format_zip_xz_multi.zipx.uu b/archivers/libarchive/files/libarchive/test/test_read_format_zip_xz_multi.zipx.uu
new file mode 100644
index 00000000000..cbb0434691a
--- /dev/null
+++ b/archivers/libarchive/files/libarchive/test/test_read_format_zip_xz_multi.zipx.uu
@@ -0,0 +1,125 @@
+begin 644 test_read_format_zip_xz_multi.zipx
+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
+?`?#K!%N3H=,!4$L%!@`````#``,`$P$``#L4````````
+`
+end
diff --git a/archivers/libarchive/files/libarchive/test/test_sparse_basic.c b/archivers/libarchive/files/libarchive/test/test_sparse_basic.c
index 58d53a94e07..f12b6af4862 100644
--- a/archivers/libarchive/files/libarchive/test/test_sparse_basic.c
+++ b/archivers/libarchive/files/libarchive/test/test_sparse_basic.c
@@ -68,6 +68,14 @@ struct sparse {
static void create_sparse_file(const char *, const struct sparse *);
+#if defined(__APPLE__)
+/* On APFS holes need to be at least 4096x4097 bytes */
+#define MIN_HOLE 16781312
+#else
+/* Elsewhere we work with 4096*10 bytes */
+#define MIN_HOLE 409600
+#endif
+
#if defined(_WIN32) && !defined(__CYGWIN__)
#include <winioctl.h>
/*
@@ -422,6 +430,7 @@ verify_sparse_file(struct archive *a, const char *path,
assert(sparse->type == END);
assertEqualInt(expected_offset, archive_entry_size(ae));
+ failure(path);
assertEqualInt(holes_seen, expected_holes);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
@@ -457,6 +466,7 @@ verify_sparse_file2(struct archive *a, const char *path,
/* Verify the number of holes only, not its offset nor its
* length because those alignments are deeply dependence on
* its filesystem. */
+ failure(path);
assertEqualInt(blocks, archive_entry_sparse_count(ae));
archive_entry_free(ae);
}
@@ -489,6 +499,7 @@ DEFINE_TEST(test_sparse_basic)
{
char *cwd;
struct archive *a;
+ const char *skip_sparse_tests;
/*
* The alignment of the hole of sparse files deeply depends
* on filesystem. In my experience, sparse_file2 test with
@@ -499,42 +510,42 @@ DEFINE_TEST(test_sparse_basic)
*/
const struct sparse sparse_file0[] = {
// 0 // 1024
- { DATA, 1024 }, { HOLE, 2048000 },
+ { DATA, 1024 }, { HOLE, MIN_HOLE + 1638400 },
// 2049024 // 2051072
- { DATA, 2048 }, { HOLE, 2048000 },
+ { DATA, 2048 }, { HOLE, MIN_HOLE + 1638400 },
// 4099072 // 4103168
- { DATA, 4096 }, { HOLE, 20480000 },
+ { DATA, 4096 }, { HOLE, MIN_HOLE + 20070400 },
// 24583168 // 24591360
- { DATA, 8192 }, { HOLE, 204800000 },
+ { DATA, 8192 }, { HOLE, MIN_HOLE + 204390400 },
// 229391360 // 229391361
{ DATA, 1 }, { END, 0 }
};
const struct sparse sparse_file1[] = {
- { HOLE, 409600 }, { DATA, 1 },
- { HOLE, 409600 }, { DATA, 1 },
- { HOLE, 409600 }, { END, 0 }
+ { HOLE, MIN_HOLE }, { DATA, 1 },
+ { HOLE, MIN_HOLE }, { DATA, 1 },
+ { HOLE, MIN_HOLE }, { END, 0 }
};
const struct sparse sparse_file2[] = {
- { HOLE, 409600 * 1 }, { DATA, 1024 },
- { HOLE, 409600 * 2 }, { DATA, 1024 },
- { HOLE, 409600 * 3 }, { DATA, 1024 },
- { HOLE, 409600 * 4 }, { DATA, 1024 },
- { HOLE, 409600 * 5 }, { DATA, 1024 },
- { HOLE, 409600 * 6 }, { DATA, 1024 },
- { HOLE, 409600 * 7 }, { DATA, 1024 },
- { HOLE, 409600 * 8 }, { DATA, 1024 },
- { HOLE, 409600 * 9 }, { DATA, 1024 },
- { HOLE, 409600 * 10}, { DATA, 1024 },/* 10 */
- { HOLE, 409600 * 1 }, { DATA, 1024 * 1 },
- { HOLE, 409600 * 2 }, { DATA, 1024 * 2 },
- { HOLE, 409600 * 3 }, { DATA, 1024 * 3 },
- { HOLE, 409600 * 4 }, { DATA, 1024 * 4 },
- { HOLE, 409600 * 5 }, { DATA, 1024 * 5 },
- { HOLE, 409600 * 6 }, { DATA, 1024 * 6 },
- { HOLE, 409600 * 7 }, { DATA, 1024 * 7 },
- { HOLE, 409600 * 8 }, { DATA, 1024 * 8 },
- { HOLE, 409600 * 9 }, { DATA, 1024 * 9 },
- { HOLE, 409600 * 10}, { DATA, 1024 * 10},/* 20 */
+ { HOLE, MIN_HOLE }, { DATA, 1024 },
+ { HOLE, MIN_HOLE + 409600 * 1 }, { DATA, 1024 },
+ { HOLE, MIN_HOLE + 409600 * 2 }, { DATA, 1024 },
+ { HOLE, MIN_HOLE + 409600 * 3 }, { DATA, 1024 },
+ { HOLE, MIN_HOLE + 409600 * 4 }, { DATA, 1024 },
+ { HOLE, MIN_HOLE + 409600 * 5 }, { DATA, 1024 },
+ { HOLE, MIN_HOLE + 409600 * 6 }, { DATA, 1024 },
+ { HOLE, MIN_HOLE + 409600 * 7 }, { DATA, 1024 },
+ { HOLE, MIN_HOLE + 409600 * 8 }, { DATA, 1024 },
+ { HOLE, MIN_HOLE + 409600 * 9}, { DATA, 1024 },/* 10 */
+ { HOLE, MIN_HOLE }, { DATA, 1024 * 1 },
+ { HOLE, MIN_HOLE + 409600 * 1 }, { DATA, 1024 * 2 },
+ { HOLE, MIN_HOLE + 409600 * 2 }, { DATA, 1024 * 3 },
+ { HOLE, MIN_HOLE + 409600 * 3 }, { DATA, 1024 * 4 },
+ { HOLE, MIN_HOLE + 409600 * 4 }, { DATA, 1024 * 5 },
+ { HOLE, MIN_HOLE + 409600 * 5 }, { DATA, 1024 * 6 },
+ { HOLE, MIN_HOLE + 409600 * 6 }, { DATA, 1024 * 7 },
+ { HOLE, MIN_HOLE + 409600 * 7 }, { DATA, 1024 * 8 },
+ { HOLE, MIN_HOLE + 409600 * 8 }, { DATA, 1024 * 9 },
+ { HOLE, MIN_HOLE + 409600 * 9}, { DATA, 1024 * 10},/* 20 */
{ END, 0 }
};
const struct sparse sparse_file3[] = {
@@ -551,6 +562,13 @@ DEFINE_TEST(test_sparse_basic)
*/
test_sparse_whole_file_data();
+ skip_sparse_tests = getenv("SKIP_TEST_SPARSE");
+ if (skip_sparse_tests != NULL) {
+ skipping("Skipping sparse tests due to SKIP_TEST_SPARSE "
+ "environment variable");
+ return;
+ }
+
/* Check if the filesystem where CWD on can
* report the number of the holes of a sparse file. */
#ifdef PATH_MAX
@@ -597,10 +615,19 @@ DEFINE_TEST(test_fully_sparse_files)
{
char *cwd;
struct archive *a;
+ const char *skip_sparse_tests;
const struct sparse sparse_file[] = {
- { HOLE, 409600 }, { END, 0 }
+ { HOLE, MIN_HOLE }, { END, 0 }
};
+
+ skip_sparse_tests = getenv("SKIP_TEST_SPARSE");
+ if (skip_sparse_tests != NULL) {
+ skipping("Skipping sparse tests due to SKIP_TEST_SPARSE "
+ "environment variable");
+ return;
+ }
+
/* Check if the filesystem where CWD on can
* report the number of the holes of a sparse file. */
#ifdef PATH_MAX
diff --git a/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c b/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c
index 8205d6abc59..81f8b1209ce 100644
--- a/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c
+++ b/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c
@@ -203,7 +203,7 @@ DEFINE_TEST(test_write_disk_perms)
failure("dir_overwrite_0744: st.st_mode=%o", st.st_mode);
assertEqualInt(st.st_mode & 0777, 0744);
- /* For dir, the owner should get left when not overwritting. */
+ /* For dir, the owner should get left when not overwriting. */
assertMakeDir("dir_owner", 0744);
if (getuid() == 0) {
diff --git a/archivers/libarchive/files/libarchive/test/test_write_disk_symlink.c b/archivers/libarchive/files/libarchive/test/test_write_disk_symlink.c
index 13089c78d89..aeadfee8a4e 100644
--- a/archivers/libarchive/files/libarchive/test/test_write_disk_symlink.c
+++ b/archivers/libarchive/files/libarchive/test/test_write_disk_symlink.c
@@ -99,6 +99,139 @@ DEFINE_TEST(test_write_disk_symlink)
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
archive_entry_free(ae);
+ /* Symbolic link: dot -> . */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "dot");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, ".");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Symbolic link: dotdot -> .. */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "dotdot");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, "..");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Symbolic link: slash -> / */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "slash");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, "/");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Symbolic link: sldot -> /. */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "sldot");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, "/.");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Symbolic link: sldotdot -> /.. */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "sldotdot");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, "/..");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Dir: d1 */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "d1");
+ archive_entry_set_mode(ae, AE_IFDIR | 0777);
+ archive_entry_unset_size(ae);
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Symbolic link: d1nosl -> d1 */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "d1nosl");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, "d1");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Symbolic link: d1slash -> d1/ */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "d1slash");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, "d1/");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Symbolic link: d1sldot -> d1/. */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "d1sldot");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, "d1/.");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Symbolic link: d1slddot -> d1/.. */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "d1slddot");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, "d1/..");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Symbolic link: d1dir -> d1 */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "d1dir");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_set_symlink_type(ae, AE_SYMLINK_TYPE_DIRECTORY);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, "d1");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Symbolic link: d1file -> d1 */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "d1file");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_set_symlink_type(ae, AE_SYMLINK_TYPE_FILE);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, "d1");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
assertEqualInt(ARCHIVE_OK, archive_write_free(ad));
/* Test the entries on disk. */
@@ -107,11 +240,30 @@ DEFINE_TEST(test_write_disk_symlink)
assertIsReg("link1a", -1);
assertFileSize("link1a", sizeof(data));
assertFileNLinks("link1a", 1);
- assertIsSymlink("link1b", "link1a");
+ assertIsSymlink("link1b", "link1a", 0);
/* Test #2: Should produce identical results to test #1 */
assertIsReg("link2a", -1);
assertFileSize("link2a", sizeof(data));
assertFileNLinks("link2a", 1);
- assertIsSymlink("link2b", "link2a");
+ assertIsSymlink("link2b", "link2a", 0);
+
+ /* Test #3: Special symlinks */
+ assertIsSymlink("dot", ".", 1);
+ assertIsSymlink("dotdot", "..", 1);
+ assertIsSymlink("slash", "/", 1);
+ assertIsSymlink("sldot", "/.", 1);
+ assertIsSymlink("sldotdot", "/..", 1);
+
+ /* Test #4: Directory symlink mixed with . and .. */
+ assertIsDir("d1", -1);
+ /* On Windows, d1nosl should be a file symlink */
+ assertIsSymlink("d1nosl", "d1", 0);
+ assertIsSymlink("d1slash", "d1/", 1);
+ assertIsSymlink("d1sldot", "d1/.", 1);
+ assertIsSymlink("d1slddot", "d1/..", 1);
+
+ /* Test #5: symlink_type is set */
+ assertIsSymlink("d1dir", "d1", 1);
+ assertIsSymlink("d1file", "d1", 0);
}