libarchive-static 1.0.6 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/extconf.rb +2 -9
- data/ext/libarchive-0.1.1/ext/archive_read_support_compression.c +6 -6
- data/ext/libarchive-0.1.1/ext/archive_read_support_compression.o +0 -0
- data/ext/libarchive-0.1.1/ext/archive_read_support_format.o +0 -0
- data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c +1 -1
- data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.o +0 -0
- data/ext/libarchive-0.1.1/ext/archive_write_set_compression.c +5 -5
- data/ext/libarchive-0.1.1/ext/archive_write_set_compression.o +0 -0
- data/ext/libarchive-0.1.1/ext/config.h +23 -0
- data/ext/libarchive-0.1.1/ext/config.log +230 -0
- data/ext/libarchive-0.1.1/ext/config.status +671 -0
- data/ext/libarchive-0.1.1/ext/libarchive.c +1 -1
- data/ext/libarchive-0.1.1/ext/libarchive.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_archive.c +7 -7
- data/ext/libarchive-0.1.1/ext/libarchive_archive.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_entry.c +6 -0
- data/ext/libarchive-0.1.1/ext/libarchive_entry.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_reader.c +6 -4
- data/ext/libarchive-0.1.1/ext/libarchive_reader.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_ruby.so +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_win32.h +1 -1
- data/ext/libarchive-0.1.1/ext/libarchive_writer.c +2 -2
- data/ext/libarchive-0.1.1/ext/libarchive_writer.o +0 -0
- data/ext/libarchive-3.6.2/Makefile.in +16892 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_append_compile_flags.m4 +67 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_append_flag.m4 +71 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_check_compile_flag.m4 +74 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_require_defined.m4 +37 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/check_stdcall_func.m4 +0 -0
- data/ext/libarchive-3.6.2/build/autoconf/compile +348 -0
- data/ext/libarchive-3.6.2/build/autoconf/config.guess +1754 -0
- data/ext/libarchive-3.6.2/build/autoconf/config.rpath +696 -0
- data/ext/libarchive-3.6.2/build/autoconf/config.sub +1890 -0
- data/ext/libarchive-3.6.2/build/autoconf/depcomp +791 -0
- data/ext/libarchive-3.6.2/build/autoconf/iconv.m4 +271 -0
- data/ext/libarchive-3.6.2/build/autoconf/install-sh +541 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/la_uid_t.m4 +0 -0
- data/ext/libarchive-3.6.2/build/autoconf/lib-ld.m4 +109 -0
- data/ext/libarchive-3.6.2/build/autoconf/lib-link.m4 +777 -0
- data/ext/libarchive-3.6.2/build/autoconf/lib-prefix.m4 +224 -0
- data/ext/libarchive-3.6.2/build/autoconf/ltmain.sh +11251 -0
- data/ext/libarchive-3.6.2/build/autoconf/m4_ax_compile_check_sizeof.m4 +115 -0
- data/ext/libarchive-3.6.2/build/autoconf/missing +215 -0
- data/ext/libarchive-3.6.2/build/autoconf/test-driver +153 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/pkgconfig/libarchive.pc.in +4 -1
- data/ext/libarchive-3.6.2/config.h.in +1504 -0
- data/ext/libarchive-3.6.2/configure +25558 -0
- data/ext/libarchive-3.6.2/libarchive/archive.h +1212 -0
- data/ext/libarchive-3.6.2/libarchive/archive_acl.c +2097 -0
- data/ext/libarchive-3.6.2/libarchive/archive_acl_private.h +83 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2.h +197 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2_impl.h +161 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2s_ref.c +369 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2sp_ref.c +361 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_check_magic.c +63 -22
- data/ext/libarchive-3.6.2/libarchive/archive_cmdline.c +227 -0
- data/ext/libarchive-3.6.2/libarchive/archive_cmdline_private.h +47 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_crc32.h +17 -0
- data/ext/libarchive-3.6.2/libarchive/archive_cryptor.c +534 -0
- data/ext/libarchive-3.6.2/libarchive/archive_cryptor_private.h +188 -0
- data/ext/libarchive-3.6.2/libarchive/archive_digest.c +1505 -0
- data/ext/libarchive-3.6.2/libarchive/archive_digest_private.h +416 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_darwin.c +559 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_freebsd.c +712 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_linux.c +760 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_sunos.c +824 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_endian.h +48 -15
- data/ext/libarchive-3.6.2/libarchive/archive_entry.c +2149 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry.h +305 -106
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_bhfi.c +5 -4
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_stat.c +9 -3
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_link_resolver.c +104 -62
- data/ext/libarchive-3.6.2/libarchive/archive_entry_locale.h +92 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_private.h +65 -49
- data/ext/libarchive-3.6.2/libarchive/archive_entry_sparse.c +156 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_stat.c +6 -6
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_strmode.c +1 -1
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_xattr.c +4 -6
- data/ext/libarchive-3.6.2/libarchive/archive_getdate.c +1165 -0
- data/ext/libarchive-3.6.2/libarchive/archive_getdate.h +39 -0
- data/ext/libarchive-3.6.2/libarchive/archive_hmac.c +334 -0
- data/ext/libarchive-3.6.2/libarchive/archive_hmac_private.h +117 -0
- data/ext/libarchive-3.6.2/libarchive/archive_match.c +1875 -0
- data/ext/libarchive-3.6.2/libarchive/archive_openssl_evp_private.h +53 -0
- data/ext/libarchive-3.6.2/libarchive/archive_openssl_hmac_private.h +54 -0
- data/ext/libarchive-3.6.2/libarchive/archive_options.c +218 -0
- data/ext/libarchive-3.6.2/libarchive/archive_options_private.h +51 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.c +337 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.h +49 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.c +463 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.h +52 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_platform.h +77 -9
- data/ext/libarchive-3.6.2/libarchive/archive_platform_acl.h +55 -0
- data/ext/libarchive-3.6.2/libarchive/archive_platform_xattr.h +47 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd7.c +1168 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd7_private.h +119 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd8.c +1287 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd8_private.h +148 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd_private.h +151 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_private.h +74 -18
- data/ext/libarchive-3.6.2/libarchive/archive_random.c +272 -0
- data/ext/libarchive-3.6.2/libarchive/archive_random_private.h +36 -0
- data/ext/libarchive-3.6.2/libarchive/archive_rb.c +709 -0
- data/ext/libarchive-3.6.2/libarchive/archive_rb.h +113 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read.c +1756 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_add_passphrase.c +190 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_append_filter.c +204 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_data_into_fd.c +64 -18
- data/ext/libarchive-3.6.2/libarchive/archive_read_disk_entry_from_file.c +1086 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_disk_posix.c +2732 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_private.h +40 -4
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_set_standard_lookup.c +21 -11
- data/ext/libarchive-3.6.2/libarchive/archive_read_disk_windows.c +2479 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_extract.c +60 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_extract.c → libarchive-3.6.2/libarchive/archive_read_extract2.c} +34 -61
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_fd.c +70 -49
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_file.c +38 -23
- data/ext/libarchive-3.6.2/libarchive/archive_read_open_filename.c +586 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_memory.c +58 -28
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_private.h +127 -59
- data/ext/libarchive-3.6.2/libarchive/archive_read_set_format.c +117 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_set_options.c +133 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_all.c → libarchive-3.6.2/libarchive/archive_read_support_filter_all.c} +35 -10
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_by_code.c +83 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_bzip2.c → libarchive-3.6.2/libarchive/archive_read_support_filter_bzip2.c} +38 -26
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_compress.c → libarchive-3.6.2/libarchive/archive_read_support_filter_compress.c} +52 -44
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_grzip.c +112 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_gzip.c → libarchive-3.6.2/libarchive/archive_read_support_filter_gzip.c} +108 -37
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lrzip.c +122 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lz4.c +742 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lzop.c +499 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_none.c → libarchive-3.6.2/libarchive/archive_read_support_filter_none.c} +15 -3
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_program.c → libarchive-3.6.2/libarchive/archive_read_support_filter_program.c} +114 -77
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_rpm.c → libarchive-3.6.2/libarchive/archive_read_support_filter_rpm.c} +31 -31
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_uu.c → libarchive-3.6.2/libarchive/archive_read_support_filter_uu.c} +141 -85
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_xz.c → libarchive-3.6.2/libarchive/archive_read_support_filter_xz.c} +369 -284
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_zstd.c +297 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_7zip.c +3900 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_all.c +89 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_ar.c +126 -72
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_by_code.c +92 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cab.c +3228 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cpio.c +1104 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_empty.c +14 -11
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_iso9660.c +990 -541
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_lha.c +2916 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_mtree.c +2150 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar.c +3797 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar5.c +4251 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_raw.c +38 -31
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_tar.c +1157 -629
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_warc.c +848 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_xar.c +439 -258
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_zip.c +4270 -0
- data/ext/libarchive-3.6.2/libarchive/archive_string.c +4240 -0
- data/ext/libarchive-3.6.2/libarchive/archive_string.h +243 -0
- data/ext/libarchive-3.6.2/libarchive/archive_string_composition.h +2292 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_string_sprintf.c +44 -16
- data/ext/libarchive-3.6.2/libarchive/archive_util.c +655 -0
- data/ext/libarchive-3.6.2/libarchive/archive_version_details.c +151 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_virtual.c +85 -16
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.c +214 -541
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.h +74 -106
- data/ext/libarchive-3.6.2/libarchive/archive_write.c +828 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter.c +72 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_b64encode.c +304 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_by_name.c +77 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_bzip2.c +401 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_write_set_compression_compress.c → libarchive-3.6.2/libarchive/archive_write_add_filter_compress.c} +86 -131
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_grzip.c +135 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_gzip.c +442 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lrzip.c +197 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lz4.c +700 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lzop.c +478 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_format_all.c → libarchive-3.6.2/libarchive/archive_write_add_filter_none.c} +11 -11
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_program.c +391 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_uuencode.c +295 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_xz.c +545 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_zstd.c +418 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_disk_posix.c +4711 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_private.h +9 -2
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_set_standard_lookup.c +30 -29
- data/ext/libarchive-3.6.2/libarchive/archive_write_disk_windows.c +2842 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_fd.c +15 -10
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_file.c +15 -9
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_filename.c +128 -20
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_memory.c +7 -18
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_private.h +72 -29
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format.c +56 -3
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_7zip.c +2322 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ar.c +54 -34
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_by_name.c +20 -2
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio.c +11 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_binary.c +610 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_newc.c +457 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_odc.c +500 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_filter_by_ext.c +142 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_gnutar.c +755 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_iso9660.c +8165 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_mtree.c +2217 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_pax.c +1049 -387
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_private.h +42 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_raw.c +125 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_shar.c +62 -47
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ustar.c +279 -108
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_v7tar.c +638 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_warc.c +453 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_xar.c +3259 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_zip.c +1704 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_options.c +130 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_passphrase.c +95 -0
- data/ext/libarchive-3.6.2/libarchive/archive_xxhash.h +48 -0
- data/ext/libarchive-3.6.2/libarchive/config_freebsd.h +271 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/filter_fork.h +10 -5
- data/ext/{libarchive-2.8.4/libarchive/filter_fork.c → libarchive-3.6.2/libarchive/filter_fork_posix.c} +98 -19
- data/ext/libarchive-3.6.2/libarchive/filter_fork_windows.c +236 -0
- data/ext/libarchive-3.6.2/libarchive/xxhash.c +525 -0
- data/ext/libarchive-static-makefile +144 -80
- data/ext/libarchive-static-wrapper-makefile +1 -1
- data/ext/zlib-1.2.13/Makefile.in +404 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/adler32.c +51 -34
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/compress.c +27 -21
- data/ext/zlib-1.2.13/configure +922 -0
- data/ext/zlib-1.2.13/crc32.c +1125 -0
- data/ext/zlib-1.2.13/crc32.h +9446 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.c +842 -459
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.h +37 -33
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzclose.c +0 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzguts.h +103 -16
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzlib.c +155 -53
- data/ext/zlib-1.2.13/gzread.c +650 -0
- data/ext/zlib-1.2.13/gzwrite.c +677 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/infback.c +24 -12
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.c +49 -66
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.h +0 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffixed.h +3 -3
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.c +209 -94
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.h +9 -5
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.c +24 -50
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.h +1 -1
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.c +135 -198
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.h +0 -0
- data/ext/zlib-1.2.13/uncompr.c +93 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zconf.h +182 -63
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zlib.h +617 -295
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.c +50 -41
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.h +83 -82
- metadata +241 -133
- data/ext/libarchive-0.1.1/libarchive.c +0 -1762
- data/ext/libarchive-2.8.4/Makefile.in +0 -7076
- data/ext/libarchive-2.8.4/build/autoconf/compile +0 -143
- data/ext/libarchive-2.8.4/build/autoconf/config.guess +0 -1502
- data/ext/libarchive-2.8.4/build/autoconf/config.sub +0 -1708
- data/ext/libarchive-2.8.4/build/autoconf/depcomp +0 -630
- data/ext/libarchive-2.8.4/build/autoconf/install-sh +0 -291
- data/ext/libarchive-2.8.4/build/autoconf/ltmain.sh +0 -8406
- data/ext/libarchive-2.8.4/build/autoconf/missing +0 -376
- data/ext/libarchive-2.8.4/config.h.in +0 -772
- data/ext/libarchive-2.8.4/configure +0 -17916
- data/ext/libarchive-2.8.4/libarchive/archive.h +0 -741
- data/ext/libarchive-2.8.4/libarchive/archive_entry.c +0 -2202
- data/ext/libarchive-2.8.4/libarchive/archive_hash.h +0 -281
- data/ext/libarchive-2.8.4/libarchive/archive_read.c +0 -1249
- data/ext/libarchive-2.8.4/libarchive/archive_read_disk.c +0 -198
- data/ext/libarchive-2.8.4/libarchive/archive_read_disk_entry_from_file.c +0 -570
- data/ext/libarchive-2.8.4/libarchive/archive_read_open_filename.c +0 -272
- data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_cpio.c +0 -777
- data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_mtree.c +0 -1304
- data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_zip.c +0 -903
- data/ext/libarchive-2.8.4/libarchive/archive_string.c +0 -453
- data/ext/libarchive-2.8.4/libarchive/archive_string.h +0 -148
- data/ext/libarchive-2.8.4/libarchive/archive_util.c +0 -391
- data/ext/libarchive-2.8.4/libarchive/archive_write.c +0 -466
- data/ext/libarchive-2.8.4/libarchive/archive_write_disk.c +0 -2628
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_bzip2.c +0 -408
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_gzip.c +0 -477
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_none.c +0 -257
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_program.c +0 -347
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_xz.c +0 -438
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio.c +0 -344
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio_newc.c +0 -295
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_mtree.c +0 -1050
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_zip.c +0 -667
- data/ext/libarchive-2.8.4/libarchive/config_freebsd.h +0 -154
- data/ext/libarchive-2.8.4/libarchive/filter_fork_windows.c +0 -113
- data/ext/zlib-1.2.5/Makefile.in +0 -257
- data/ext/zlib-1.2.5/configure +0 -596
- data/ext/zlib-1.2.5/crc32.c +0 -442
- data/ext/zlib-1.2.5/crc32.h +0 -441
- data/ext/zlib-1.2.5/example.c +0 -565
- data/ext/zlib-1.2.5/gzread.c +0 -653
- data/ext/zlib-1.2.5/gzwrite.c +0 -531
- data/ext/zlib-1.2.5/minigzip.c +0 -440
- data/ext/zlib-1.2.5/uncompr.c +0 -59
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*-
|
|
2
|
-
* Copyright (c) 2003-
|
|
2
|
+
* Copyright (c) 2003-2011 Tim Kientzle
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* Redistribution and use in source and binary forms, with or without
|
|
@@ -24,30 +24,55 @@
|
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
26
|
#include "archive_platform.h"
|
|
27
|
-
__FBSDID("$FreeBSD
|
|
27
|
+
__FBSDID("$FreeBSD$");
|
|
28
28
|
|
|
29
29
|
#include "archive.h"
|
|
30
|
+
#include "archive_private.h"
|
|
30
31
|
|
|
32
|
+
#if ARCHIVE_VERSION_NUMBER < 4000000
|
|
33
|
+
/* Deprecated; remove in libarchive 4.0 */
|
|
31
34
|
int
|
|
32
35
|
archive_read_support_compression_all(struct archive *a)
|
|
33
36
|
{
|
|
37
|
+
return archive_read_support_filter_all(a);
|
|
38
|
+
}
|
|
39
|
+
#endif
|
|
40
|
+
|
|
41
|
+
int
|
|
42
|
+
archive_read_support_filter_all(struct archive *a)
|
|
43
|
+
{
|
|
44
|
+
archive_check_magic(a, ARCHIVE_READ_MAGIC,
|
|
45
|
+
ARCHIVE_STATE_NEW, "archive_read_support_filter_all");
|
|
46
|
+
|
|
34
47
|
/* Bzip falls back to "bunzip2" command-line */
|
|
35
|
-
|
|
48
|
+
archive_read_support_filter_bzip2(a);
|
|
36
49
|
/* The decompress code doesn't use an outside library. */
|
|
37
|
-
|
|
38
|
-
/* Gzip decompress falls back to "
|
|
39
|
-
|
|
50
|
+
archive_read_support_filter_compress(a);
|
|
51
|
+
/* Gzip decompress falls back to "gzip -d" command-line. */
|
|
52
|
+
archive_read_support_filter_gzip(a);
|
|
53
|
+
/* Lzip falls back to "unlzip" command-line program. */
|
|
54
|
+
archive_read_support_filter_lzip(a);
|
|
40
55
|
/* The LZMA file format has a very weak signature, so it
|
|
41
56
|
* may not be feasible to keep this here, but we'll try.
|
|
42
57
|
* This will come back out if there are problems. */
|
|
43
58
|
/* Lzma falls back to "unlzma" command-line program. */
|
|
44
|
-
|
|
59
|
+
archive_read_support_filter_lzma(a);
|
|
45
60
|
/* Xz falls back to "unxz" command-line program. */
|
|
46
|
-
|
|
61
|
+
archive_read_support_filter_xz(a);
|
|
47
62
|
/* The decode code doesn't use an outside library. */
|
|
48
|
-
|
|
63
|
+
archive_read_support_filter_uu(a);
|
|
49
64
|
/* The decode code doesn't use an outside library. */
|
|
50
|
-
|
|
65
|
+
archive_read_support_filter_rpm(a);
|
|
66
|
+
/* The decode code always uses "lrzip -q -d" command-line. */
|
|
67
|
+
archive_read_support_filter_lrzip(a);
|
|
68
|
+
/* Lzop decompress falls back to "lzop -d" command-line. */
|
|
69
|
+
archive_read_support_filter_lzop(a);
|
|
70
|
+
/* The decode code always uses "grzip -d" command-line. */
|
|
71
|
+
archive_read_support_filter_grzip(a);
|
|
72
|
+
/* Lz4 falls back to "lz4 -d" command-line program. */
|
|
73
|
+
archive_read_support_filter_lz4(a);
|
|
74
|
+
/* Zstd falls back to "zstd -d" command-line program. */
|
|
75
|
+
archive_read_support_filter_zstd(a);
|
|
51
76
|
|
|
52
77
|
/* Note: We always return ARCHIVE_OK here, even if some of the
|
|
53
78
|
* above return ARCHIVE_WARN. The intent here is to enable
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/*-
|
|
2
|
+
* Copyright (c) 2020 Martin Matuska
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Redistribution and use in source and binary forms, with or without
|
|
6
|
+
* modification, are permitted provided that the following conditions
|
|
7
|
+
* are met:
|
|
8
|
+
* 1. Redistributions of source code must retain the above copyright
|
|
9
|
+
* notice, this list of conditions and the following disclaimer.
|
|
10
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
* notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
* documentation and/or other materials provided with the distribution.
|
|
13
|
+
*
|
|
14
|
+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
|
|
15
|
+
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
16
|
+
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
17
|
+
* IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
18
|
+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
19
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
20
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
21
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
22
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
23
|
+
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
#include "archive_platform.h"
|
|
27
|
+
__FBSDID("$FreeBSD$");
|
|
28
|
+
|
|
29
|
+
#include "archive.h"
|
|
30
|
+
#include "archive_private.h"
|
|
31
|
+
|
|
32
|
+
int
|
|
33
|
+
archive_read_support_filter_by_code(struct archive *a, int filter_code)
|
|
34
|
+
{
|
|
35
|
+
archive_check_magic(a, ARCHIVE_READ_MAGIC,
|
|
36
|
+
ARCHIVE_STATE_NEW, "archive_read_support_filter_by_code");
|
|
37
|
+
|
|
38
|
+
switch (filter_code) {
|
|
39
|
+
case ARCHIVE_FILTER_NONE:
|
|
40
|
+
return archive_read_support_filter_none(a);
|
|
41
|
+
break;
|
|
42
|
+
case ARCHIVE_FILTER_GZIP:
|
|
43
|
+
return archive_read_support_filter_gzip(a);
|
|
44
|
+
break;
|
|
45
|
+
case ARCHIVE_FILTER_BZIP2:
|
|
46
|
+
return archive_read_support_filter_bzip2(a);
|
|
47
|
+
break;
|
|
48
|
+
case ARCHIVE_FILTER_COMPRESS:
|
|
49
|
+
return archive_read_support_filter_compress(a);
|
|
50
|
+
break;
|
|
51
|
+
case ARCHIVE_FILTER_LZMA:
|
|
52
|
+
return archive_read_support_filter_lzma(a);
|
|
53
|
+
break;
|
|
54
|
+
case ARCHIVE_FILTER_XZ:
|
|
55
|
+
return archive_read_support_filter_xz(a);
|
|
56
|
+
break;
|
|
57
|
+
case ARCHIVE_FILTER_UU:
|
|
58
|
+
return archive_read_support_filter_uu(a);
|
|
59
|
+
break;
|
|
60
|
+
case ARCHIVE_FILTER_RPM:
|
|
61
|
+
return archive_read_support_filter_rpm(a);
|
|
62
|
+
break;
|
|
63
|
+
case ARCHIVE_FILTER_LZIP:
|
|
64
|
+
return archive_read_support_filter_lzip(a);
|
|
65
|
+
break;
|
|
66
|
+
case ARCHIVE_FILTER_LRZIP:
|
|
67
|
+
return archive_read_support_filter_lrzip(a);
|
|
68
|
+
break;
|
|
69
|
+
case ARCHIVE_FILTER_LZOP:
|
|
70
|
+
return archive_read_support_filter_lzop(a);
|
|
71
|
+
break;
|
|
72
|
+
case ARCHIVE_FILTER_GRZIP:
|
|
73
|
+
return archive_read_support_filter_grzip(a);
|
|
74
|
+
break;
|
|
75
|
+
case ARCHIVE_FILTER_LZ4:
|
|
76
|
+
return archive_read_support_filter_lz4(a);
|
|
77
|
+
break;
|
|
78
|
+
case ARCHIVE_FILTER_ZSTD:
|
|
79
|
+
return archive_read_support_filter_zstd(a);
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
return (ARCHIVE_FATAL);
|
|
83
|
+
}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
#include "archive_platform.h"
|
|
27
27
|
|
|
28
|
-
__FBSDID("$FreeBSD
|
|
28
|
+
__FBSDID("$FreeBSD$");
|
|
29
29
|
|
|
30
30
|
#ifdef HAVE_ERRNO_H
|
|
31
31
|
#include <errno.h>
|
|
@@ -70,37 +70,40 @@ static int bzip2_filter_close(struct archive_read_filter *);
|
|
|
70
70
|
*/
|
|
71
71
|
static int bzip2_reader_bid(struct archive_read_filter_bidder *, struct archive_read_filter *);
|
|
72
72
|
static int bzip2_reader_init(struct archive_read_filter *);
|
|
73
|
-
static int bzip2_reader_free(struct archive_read_filter_bidder *);
|
|
74
73
|
|
|
74
|
+
#if ARCHIVE_VERSION_NUMBER < 4000000
|
|
75
|
+
/* Deprecated; remove in libarchive 4.0 */
|
|
75
76
|
int
|
|
76
|
-
archive_read_support_compression_bzip2(struct archive *
|
|
77
|
+
archive_read_support_compression_bzip2(struct archive *a)
|
|
78
|
+
{
|
|
79
|
+
return archive_read_support_filter_bzip2(a);
|
|
80
|
+
}
|
|
81
|
+
#endif
|
|
82
|
+
|
|
83
|
+
static const struct archive_read_filter_bidder_vtable
|
|
84
|
+
bzip2_bidder_vtable = {
|
|
85
|
+
.bid = bzip2_reader_bid,
|
|
86
|
+
.init = bzip2_reader_init,
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
int
|
|
90
|
+
archive_read_support_filter_bzip2(struct archive *_a)
|
|
77
91
|
{
|
|
78
92
|
struct archive_read *a = (struct archive_read *)_a;
|
|
79
|
-
struct archive_read_filter_bidder *reader = __archive_read_get_bidder(a);
|
|
80
93
|
|
|
81
|
-
if (
|
|
94
|
+
if (__archive_read_register_bidder(a, NULL, "bzip2",
|
|
95
|
+
&bzip2_bidder_vtable) != ARCHIVE_OK)
|
|
82
96
|
return (ARCHIVE_FATAL);
|
|
83
97
|
|
|
84
|
-
reader->data = NULL;
|
|
85
|
-
reader->bid = bzip2_reader_bid;
|
|
86
|
-
reader->init = bzip2_reader_init;
|
|
87
|
-
reader->options = NULL;
|
|
88
|
-
reader->free = bzip2_reader_free;
|
|
89
98
|
#if defined(HAVE_BZLIB_H) && defined(BZ_CONFIG_ERROR)
|
|
90
99
|
return (ARCHIVE_OK);
|
|
91
100
|
#else
|
|
92
101
|
archive_set_error(_a, ARCHIVE_ERRNO_MISC,
|
|
93
|
-
"Using external
|
|
102
|
+
"Using external bzip2 program");
|
|
94
103
|
return (ARCHIVE_WARN);
|
|
95
104
|
#endif
|
|
96
105
|
}
|
|
97
106
|
|
|
98
|
-
static int
|
|
99
|
-
bzip2_reader_free(struct archive_read_filter_bidder *self){
|
|
100
|
-
(void)self; /* UNUSED */
|
|
101
|
-
return (ARCHIVE_OK);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
107
|
/*
|
|
105
108
|
* Test whether we can handle this data.
|
|
106
109
|
*
|
|
@@ -124,7 +127,7 @@ bzip2_reader_bid(struct archive_read_filter_bidder *self, struct archive_read_fi
|
|
|
124
127
|
|
|
125
128
|
/* First three bytes must be "BZh" */
|
|
126
129
|
bits_checked = 0;
|
|
127
|
-
if (buffer
|
|
130
|
+
if (memcmp(buffer, "BZh", 3) != 0)
|
|
128
131
|
return (0);
|
|
129
132
|
bits_checked += 24;
|
|
130
133
|
|
|
@@ -158,11 +161,11 @@ bzip2_reader_init(struct archive_read_filter *self)
|
|
|
158
161
|
{
|
|
159
162
|
int r;
|
|
160
163
|
|
|
161
|
-
r = __archive_read_program(self, "
|
|
164
|
+
r = __archive_read_program(self, "bzip2 -d");
|
|
162
165
|
/* Note: We set the format here even if __archive_read_program()
|
|
163
166
|
* above fails. We do, after all, know what the format is
|
|
164
167
|
* even if we weren't able to read it. */
|
|
165
|
-
self->code =
|
|
168
|
+
self->code = ARCHIVE_FILTER_BZIP2;
|
|
166
169
|
self->name = "bzip2";
|
|
167
170
|
return (r);
|
|
168
171
|
}
|
|
@@ -170,6 +173,12 @@ bzip2_reader_init(struct archive_read_filter *self)
|
|
|
170
173
|
|
|
171
174
|
#else
|
|
172
175
|
|
|
176
|
+
static const struct archive_read_filter_vtable
|
|
177
|
+
bzip2_reader_vtable = {
|
|
178
|
+
.read = bzip2_filter_read,
|
|
179
|
+
.close = bzip2_filter_close,
|
|
180
|
+
};
|
|
181
|
+
|
|
173
182
|
/*
|
|
174
183
|
* Setup the callbacks.
|
|
175
184
|
*/
|
|
@@ -180,12 +189,12 @@ bzip2_reader_init(struct archive_read_filter *self)
|
|
|
180
189
|
void *out_block;
|
|
181
190
|
struct private_data *state;
|
|
182
191
|
|
|
183
|
-
self->code =
|
|
192
|
+
self->code = ARCHIVE_FILTER_BZIP2;
|
|
184
193
|
self->name = "bzip2";
|
|
185
194
|
|
|
186
195
|
state = (struct private_data *)calloc(sizeof(*state), 1);
|
|
187
196
|
out_block = (unsigned char *)malloc(out_block_size);
|
|
188
|
-
if (
|
|
197
|
+
if (state == NULL || out_block == NULL) {
|
|
189
198
|
archive_set_error(&self->archive->archive, ENOMEM,
|
|
190
199
|
"Can't allocate data for bzip2 decompression");
|
|
191
200
|
free(out_block);
|
|
@@ -196,9 +205,7 @@ bzip2_reader_init(struct archive_read_filter *self)
|
|
|
196
205
|
self->data = state;
|
|
197
206
|
state->out_block_size = out_block_size;
|
|
198
207
|
state->out_block = out_block;
|
|
199
|
-
self->
|
|
200
|
-
self->skip = NULL; /* not supported */
|
|
201
|
-
self->close = bzip2_filter_close;
|
|
208
|
+
self->vtable = &bzip2_reader_vtable;
|
|
202
209
|
|
|
203
210
|
return (ARCHIVE_OK);
|
|
204
211
|
}
|
|
@@ -274,8 +281,12 @@ bzip2_filter_read(struct archive_read_filter *self, const void **p)
|
|
|
274
281
|
* doesn't declare it so. <sigh> */
|
|
275
282
|
read_buf =
|
|
276
283
|
__archive_read_filter_ahead(self->upstream, 1, &ret);
|
|
277
|
-
if (read_buf == NULL)
|
|
284
|
+
if (read_buf == NULL) {
|
|
285
|
+
archive_set_error(&self->archive->archive,
|
|
286
|
+
ARCHIVE_ERRNO_MISC,
|
|
287
|
+
"truncated bzip2 input");
|
|
278
288
|
return (ARCHIVE_FATAL);
|
|
289
|
+
}
|
|
279
290
|
state->stream.next_in = (char *)(uintptr_t)read_buf;
|
|
280
291
|
state->stream.avail_in = ret;
|
|
281
292
|
/* There is no more data, return whatever we have. */
|
|
@@ -343,6 +354,7 @@ bzip2_filter_close(struct archive_read_filter *self)
|
|
|
343
354
|
"Failed to clean up decompressor");
|
|
344
355
|
ret = ARCHIVE_FATAL;
|
|
345
356
|
}
|
|
357
|
+
state->valid = 0;
|
|
346
358
|
}
|
|
347
359
|
|
|
348
360
|
free(state->out_block);
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
#include "archive_platform.h"
|
|
67
|
-
__FBSDID("$FreeBSD
|
|
67
|
+
__FBSDID("$FreeBSD$");
|
|
68
68
|
|
|
69
69
|
#ifdef HAVE_ERRNO_H
|
|
70
70
|
#include <errno.h>
|
|
@@ -95,6 +95,7 @@ struct private_data {
|
|
|
95
95
|
/* Input variables. */
|
|
96
96
|
const unsigned char *next_in;
|
|
97
97
|
size_t avail_in;
|
|
98
|
+
size_t consume_unnotified;
|
|
98
99
|
int bit_buffer;
|
|
99
100
|
int bits_avail;
|
|
100
101
|
size_t bytes_in_section;
|
|
@@ -132,7 +133,6 @@ struct private_data {
|
|
|
132
133
|
|
|
133
134
|
static int compress_bidder_bid(struct archive_read_filter_bidder *, struct archive_read_filter *);
|
|
134
135
|
static int compress_bidder_init(struct archive_read_filter *);
|
|
135
|
-
static int compress_bidder_free(struct archive_read_filter_bidder *);
|
|
136
136
|
|
|
137
137
|
static ssize_t compress_filter_read(struct archive_read_filter *, const void **);
|
|
138
138
|
static int compress_filter_close(struct archive_read_filter *);
|
|
@@ -140,29 +140,33 @@ static int compress_filter_close(struct archive_read_filter *);
|
|
|
140
140
|
static int getbits(struct archive_read_filter *, int n);
|
|
141
141
|
static int next_code(struct archive_read_filter *);
|
|
142
142
|
|
|
143
|
+
#if ARCHIVE_VERSION_NUMBER < 4000000
|
|
144
|
+
/* Deprecated; remove in libarchive 4.0 */
|
|
143
145
|
int
|
|
144
|
-
archive_read_support_compression_compress(struct archive *
|
|
146
|
+
archive_read_support_compression_compress(struct archive *a)
|
|
145
147
|
{
|
|
146
|
-
|
|
147
|
-
|
|
148
|
+
return archive_read_support_filter_compress(a);
|
|
149
|
+
}
|
|
150
|
+
#endif
|
|
148
151
|
|
|
149
|
-
|
|
150
|
-
|
|
152
|
+
static const struct archive_read_filter_bidder_vtable
|
|
153
|
+
compress_bidder_vtable = {
|
|
154
|
+
.bid = compress_bidder_bid,
|
|
155
|
+
.init = compress_bidder_init,
|
|
156
|
+
};
|
|
151
157
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
return (
|
|
158
|
+
int
|
|
159
|
+
archive_read_support_filter_compress(struct archive *_a)
|
|
160
|
+
{
|
|
161
|
+
struct archive_read *a = (struct archive_read *)_a;
|
|
162
|
+
|
|
163
|
+
return __archive_read_register_bidder(a, NULL, "compress (.Z)",
|
|
164
|
+
&compress_bidder_vtable);
|
|
158
165
|
}
|
|
159
166
|
|
|
160
167
|
/*
|
|
161
168
|
* Test whether we can handle this data.
|
|
162
|
-
*
|
|
163
|
-
* This logic returns zero if any part of the signature fails. It
|
|
164
|
-
* also tries to Do The Right Thing if a very short buffer prevents us
|
|
165
|
-
* from verifying as much as we would like.
|
|
169
|
+
* This logic returns zero if any part of the signature fails.
|
|
166
170
|
*/
|
|
167
171
|
static int
|
|
168
172
|
compress_bidder_bid(struct archive_read_filter_bidder *self,
|
|
@@ -174,27 +178,32 @@ compress_bidder_bid(struct archive_read_filter_bidder *self,
|
|
|
174
178
|
|
|
175
179
|
(void)self; /* UNUSED */
|
|
176
180
|
|
|
177
|
-
|
|
181
|
+
/* Shortest valid compress file is 3 bytes. */
|
|
182
|
+
buffer = __archive_read_filter_ahead(filter, 3, &avail);
|
|
178
183
|
|
|
179
184
|
if (buffer == NULL)
|
|
180
185
|
return (0);
|
|
181
186
|
|
|
182
187
|
bits_checked = 0;
|
|
183
|
-
|
|
188
|
+
/* First two bytes are the magic value */
|
|
189
|
+
if (buffer[0] != 0x1F || buffer[1] != 0x9D)
|
|
184
190
|
return (0);
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
if (buffer[1] != 0235) /* Verify second ID byte. */
|
|
191
|
+
/* Third byte holds compression parameters. */
|
|
192
|
+
if (buffer[2] & 0x20) /* Reserved bit, must be zero. */
|
|
188
193
|
return (0);
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
* TODO: Verify more.
|
|
193
|
-
*/
|
|
194
|
+
if (buffer[2] & 0x40) /* Reserved bit, must be zero. */
|
|
195
|
+
return (0);
|
|
196
|
+
bits_checked += 18;
|
|
194
197
|
|
|
195
198
|
return (bits_checked);
|
|
196
199
|
}
|
|
197
200
|
|
|
201
|
+
static const struct archive_read_filter_vtable
|
|
202
|
+
compress_reader_vtable = {
|
|
203
|
+
.read = compress_filter_read,
|
|
204
|
+
.close = compress_filter_close,
|
|
205
|
+
};
|
|
206
|
+
|
|
198
207
|
/*
|
|
199
208
|
* Setup the callbacks.
|
|
200
209
|
*/
|
|
@@ -206,7 +215,7 @@ compress_bidder_init(struct archive_read_filter *self)
|
|
|
206
215
|
void *out_block;
|
|
207
216
|
int code;
|
|
208
217
|
|
|
209
|
-
self->code =
|
|
218
|
+
self->code = ARCHIVE_FILTER_COMPRESS;
|
|
210
219
|
self->name = "compress (.Z)";
|
|
211
220
|
|
|
212
221
|
state = (struct private_data *)calloc(sizeof(*state), 1);
|
|
@@ -223,16 +232,20 @@ compress_bidder_init(struct archive_read_filter *self)
|
|
|
223
232
|
self->data = state;
|
|
224
233
|
state->out_block_size = out_block_size;
|
|
225
234
|
state->out_block = out_block;
|
|
226
|
-
self->
|
|
227
|
-
self->skip = NULL; /* not supported */
|
|
228
|
-
self->close = compress_filter_close;
|
|
235
|
+
self->vtable = &compress_reader_vtable;
|
|
229
236
|
|
|
230
237
|
/* XXX MOVE THE FOLLOWING OUT OF INIT() XXX */
|
|
231
238
|
|
|
232
239
|
(void)getbits(self, 8); /* Skip first signature byte. */
|
|
233
240
|
(void)getbits(self, 8); /* Skip second signature byte. */
|
|
234
241
|
|
|
242
|
+
/* Get compression parameters. */
|
|
235
243
|
code = getbits(self, 8);
|
|
244
|
+
if ((code & 0x1f) > 16) {
|
|
245
|
+
archive_set_error(&self->archive->archive, -1,
|
|
246
|
+
"Invalid compressed data");
|
|
247
|
+
return (ARCHIVE_FATAL);
|
|
248
|
+
}
|
|
236
249
|
state->maxcode_bits = code & 0x1f;
|
|
237
250
|
state->maxcode = (1 << state->maxcode_bits);
|
|
238
251
|
state->use_reset_code = code & 0x80;
|
|
@@ -289,16 +302,6 @@ compress_filter_read(struct archive_read_filter *self, const void **pblock)
|
|
|
289
302
|
return (p - start);
|
|
290
303
|
}
|
|
291
304
|
|
|
292
|
-
/*
|
|
293
|
-
* Clean up the reader.
|
|
294
|
-
*/
|
|
295
|
-
static int
|
|
296
|
-
compress_bidder_free(struct archive_read_filter_bidder *self)
|
|
297
|
-
{
|
|
298
|
-
self->data = NULL;
|
|
299
|
-
return (ARCHIVE_OK);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
305
|
/*
|
|
303
306
|
* Close and release the filter.
|
|
304
307
|
*/
|
|
@@ -361,7 +364,8 @@ next_code(struct archive_read_filter *self)
|
|
|
361
364
|
return (next_code(self));
|
|
362
365
|
}
|
|
363
366
|
|
|
364
|
-
if (code > state->free_ent
|
|
367
|
+
if (code > state->free_ent
|
|
368
|
+
|| (code == state->free_ent && state->oldcode < 0)) {
|
|
365
369
|
/* An invalid code is a fatal error. */
|
|
366
370
|
archive_set_error(&(self->archive->archive), -1,
|
|
367
371
|
"Invalid compressed data");
|
|
@@ -420,6 +424,11 @@ getbits(struct archive_read_filter *self, int n)
|
|
|
420
424
|
|
|
421
425
|
while (state->bits_avail < n) {
|
|
422
426
|
if (state->avail_in <= 0) {
|
|
427
|
+
if (state->consume_unnotified) {
|
|
428
|
+
__archive_read_filter_consume(self->upstream,
|
|
429
|
+
state->consume_unnotified);
|
|
430
|
+
state->consume_unnotified = 0;
|
|
431
|
+
}
|
|
423
432
|
state->next_in
|
|
424
433
|
= __archive_read_filter_ahead(self->upstream,
|
|
425
434
|
1, &ret);
|
|
@@ -427,8 +436,7 @@ getbits(struct archive_read_filter *self, int n)
|
|
|
427
436
|
return (-1);
|
|
428
437
|
if (ret < 0 || state->next_in == NULL)
|
|
429
438
|
return (ARCHIVE_FATAL);
|
|
430
|
-
state->avail_in = ret;
|
|
431
|
-
__archive_read_filter_consume(self->upstream, ret);
|
|
439
|
+
state->consume_unnotified = state->avail_in = ret;
|
|
432
440
|
}
|
|
433
441
|
state->bit_buffer |= *state->next_in++ << state->bits_avail;
|
|
434
442
|
state->avail_in--;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/*-
|
|
2
|
+
* Copyright (c) 2012 Michihiro NAKAJIMA
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Redistribution and use in source and binary forms, with or without
|
|
6
|
+
* modification, are permitted provided that the following conditions
|
|
7
|
+
* are met:
|
|
8
|
+
* 1. Redistributions of source code must retain the above copyright
|
|
9
|
+
* notice, this list of conditions and the following disclaimer.
|
|
10
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
* notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
* documentation and/or other materials provided with the distribution.
|
|
13
|
+
*
|
|
14
|
+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
|
|
15
|
+
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
16
|
+
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
17
|
+
* IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
18
|
+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
19
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
20
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
21
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
22
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
23
|
+
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
#include "archive_platform.h"
|
|
27
|
+
|
|
28
|
+
__FBSDID("$FreeBSD$");
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
#ifdef HAVE_ERRNO_H
|
|
32
|
+
#include <errno.h>
|
|
33
|
+
#endif
|
|
34
|
+
#ifdef HAVE_STDLIB_H
|
|
35
|
+
#include <stdlib.h>
|
|
36
|
+
#endif
|
|
37
|
+
#ifdef HAVE_STRING_H
|
|
38
|
+
#include <string.h>
|
|
39
|
+
#endif
|
|
40
|
+
#ifdef HAVE_UNISTD_H
|
|
41
|
+
#include <unistd.h>
|
|
42
|
+
#endif
|
|
43
|
+
|
|
44
|
+
#include "archive.h"
|
|
45
|
+
#include "archive_private.h"
|
|
46
|
+
#include "archive_read_private.h"
|
|
47
|
+
|
|
48
|
+
static const unsigned char grzip_magic[] = {
|
|
49
|
+
0x47, 0x52, 0x5a, 0x69, 0x70, 0x49, 0x49, 0x00,
|
|
50
|
+
0x02, 0x04, 0x3a, 0x29 };
|
|
51
|
+
|
|
52
|
+
static int grzip_bidder_bid(struct archive_read_filter_bidder *,
|
|
53
|
+
struct archive_read_filter *);
|
|
54
|
+
static int grzip_bidder_init(struct archive_read_filter *);
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
static const struct archive_read_filter_bidder_vtable
|
|
58
|
+
grzip_bidder_vtable = {
|
|
59
|
+
.bid = grzip_bidder_bid,
|
|
60
|
+
.init = grzip_bidder_init,
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
int
|
|
64
|
+
archive_read_support_filter_grzip(struct archive *_a)
|
|
65
|
+
{
|
|
66
|
+
struct archive_read *a = (struct archive_read *)_a;
|
|
67
|
+
|
|
68
|
+
if (__archive_read_register_bidder(a, NULL, NULL,
|
|
69
|
+
&grzip_bidder_vtable) != ARCHIVE_OK)
|
|
70
|
+
return (ARCHIVE_FATAL);
|
|
71
|
+
|
|
72
|
+
/* This filter always uses an external program. */
|
|
73
|
+
archive_set_error(_a, ARCHIVE_ERRNO_MISC,
|
|
74
|
+
"Using external grzip program for grzip decompression");
|
|
75
|
+
return (ARCHIVE_WARN);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/*
|
|
79
|
+
* Bidder just verifies the header and returns the number of verified bits.
|
|
80
|
+
*/
|
|
81
|
+
static int
|
|
82
|
+
grzip_bidder_bid(struct archive_read_filter_bidder *self,
|
|
83
|
+
struct archive_read_filter *filter)
|
|
84
|
+
{
|
|
85
|
+
const unsigned char *p;
|
|
86
|
+
ssize_t avail;
|
|
87
|
+
|
|
88
|
+
(void)self; /* UNUSED */
|
|
89
|
+
|
|
90
|
+
p = __archive_read_filter_ahead(filter, sizeof(grzip_magic), &avail);
|
|
91
|
+
if (p == NULL || avail == 0)
|
|
92
|
+
return (0);
|
|
93
|
+
|
|
94
|
+
if (memcmp(p, grzip_magic, sizeof(grzip_magic)))
|
|
95
|
+
return (0);
|
|
96
|
+
|
|
97
|
+
return (sizeof(grzip_magic) * 8);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
static int
|
|
101
|
+
grzip_bidder_init(struct archive_read_filter *self)
|
|
102
|
+
{
|
|
103
|
+
int r;
|
|
104
|
+
|
|
105
|
+
r = __archive_read_program(self, "grzip -d");
|
|
106
|
+
/* Note: We set the format here even if __archive_read_program()
|
|
107
|
+
* above fails. We do, after all, know what the format is
|
|
108
|
+
* even if we weren't able to read it. */
|
|
109
|
+
self->code = ARCHIVE_FILTER_GRZIP;
|
|
110
|
+
self->name = "grzip";
|
|
111
|
+
return (r);
|
|
112
|
+
}
|