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.
Files changed (295) hide show
  1. checksums.yaml +4 -4
  2. data/ext/extconf.rb +2 -9
  3. data/ext/libarchive-0.1.1/ext/archive_read_support_compression.c +6 -6
  4. data/ext/libarchive-0.1.1/ext/archive_read_support_compression.o +0 -0
  5. data/ext/libarchive-0.1.1/ext/archive_read_support_format.o +0 -0
  6. data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c +1 -1
  7. data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.o +0 -0
  8. data/ext/libarchive-0.1.1/ext/archive_write_set_compression.c +5 -5
  9. data/ext/libarchive-0.1.1/ext/archive_write_set_compression.o +0 -0
  10. data/ext/libarchive-0.1.1/ext/config.h +23 -0
  11. data/ext/libarchive-0.1.1/ext/config.log +230 -0
  12. data/ext/libarchive-0.1.1/ext/config.status +671 -0
  13. data/ext/libarchive-0.1.1/ext/libarchive.c +1 -1
  14. data/ext/libarchive-0.1.1/ext/libarchive.o +0 -0
  15. data/ext/libarchive-0.1.1/ext/libarchive_archive.c +7 -7
  16. data/ext/libarchive-0.1.1/ext/libarchive_archive.o +0 -0
  17. data/ext/libarchive-0.1.1/ext/libarchive_entry.c +6 -0
  18. data/ext/libarchive-0.1.1/ext/libarchive_entry.o +0 -0
  19. data/ext/libarchive-0.1.1/ext/libarchive_reader.c +6 -4
  20. data/ext/libarchive-0.1.1/ext/libarchive_reader.o +0 -0
  21. data/ext/libarchive-0.1.1/ext/libarchive_ruby.so +0 -0
  22. data/ext/libarchive-0.1.1/ext/libarchive_win32.h +1 -1
  23. data/ext/libarchive-0.1.1/ext/libarchive_writer.c +2 -2
  24. data/ext/libarchive-0.1.1/ext/libarchive_writer.o +0 -0
  25. data/ext/libarchive-3.6.2/Makefile.in +16892 -0
  26. data/ext/libarchive-3.6.2/build/autoconf/ax_append_compile_flags.m4 +67 -0
  27. data/ext/libarchive-3.6.2/build/autoconf/ax_append_flag.m4 +71 -0
  28. data/ext/libarchive-3.6.2/build/autoconf/ax_check_compile_flag.m4 +74 -0
  29. data/ext/libarchive-3.6.2/build/autoconf/ax_require_defined.m4 +37 -0
  30. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/check_stdcall_func.m4 +0 -0
  31. data/ext/libarchive-3.6.2/build/autoconf/compile +348 -0
  32. data/ext/libarchive-3.6.2/build/autoconf/config.guess +1754 -0
  33. data/ext/libarchive-3.6.2/build/autoconf/config.rpath +696 -0
  34. data/ext/libarchive-3.6.2/build/autoconf/config.sub +1890 -0
  35. data/ext/libarchive-3.6.2/build/autoconf/depcomp +791 -0
  36. data/ext/libarchive-3.6.2/build/autoconf/iconv.m4 +271 -0
  37. data/ext/libarchive-3.6.2/build/autoconf/install-sh +541 -0
  38. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/la_uid_t.m4 +0 -0
  39. data/ext/libarchive-3.6.2/build/autoconf/lib-ld.m4 +109 -0
  40. data/ext/libarchive-3.6.2/build/autoconf/lib-link.m4 +777 -0
  41. data/ext/libarchive-3.6.2/build/autoconf/lib-prefix.m4 +224 -0
  42. data/ext/libarchive-3.6.2/build/autoconf/ltmain.sh +11251 -0
  43. data/ext/libarchive-3.6.2/build/autoconf/m4_ax_compile_check_sizeof.m4 +115 -0
  44. data/ext/libarchive-3.6.2/build/autoconf/missing +215 -0
  45. data/ext/libarchive-3.6.2/build/autoconf/test-driver +153 -0
  46. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/pkgconfig/libarchive.pc.in +4 -1
  47. data/ext/libarchive-3.6.2/config.h.in +1504 -0
  48. data/ext/libarchive-3.6.2/configure +25558 -0
  49. data/ext/libarchive-3.6.2/libarchive/archive.h +1212 -0
  50. data/ext/libarchive-3.6.2/libarchive/archive_acl.c +2097 -0
  51. data/ext/libarchive-3.6.2/libarchive/archive_acl_private.h +83 -0
  52. data/ext/libarchive-3.6.2/libarchive/archive_blake2.h +197 -0
  53. data/ext/libarchive-3.6.2/libarchive/archive_blake2_impl.h +161 -0
  54. data/ext/libarchive-3.6.2/libarchive/archive_blake2s_ref.c +369 -0
  55. data/ext/libarchive-3.6.2/libarchive/archive_blake2sp_ref.c +361 -0
  56. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_check_magic.c +63 -22
  57. data/ext/libarchive-3.6.2/libarchive/archive_cmdline.c +227 -0
  58. data/ext/libarchive-3.6.2/libarchive/archive_cmdline_private.h +47 -0
  59. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_crc32.h +17 -0
  60. data/ext/libarchive-3.6.2/libarchive/archive_cryptor.c +534 -0
  61. data/ext/libarchive-3.6.2/libarchive/archive_cryptor_private.h +188 -0
  62. data/ext/libarchive-3.6.2/libarchive/archive_digest.c +1505 -0
  63. data/ext/libarchive-3.6.2/libarchive/archive_digest_private.h +416 -0
  64. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_darwin.c +559 -0
  65. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_freebsd.c +712 -0
  66. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_linux.c +760 -0
  67. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_sunos.c +824 -0
  68. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_endian.h +48 -15
  69. data/ext/libarchive-3.6.2/libarchive/archive_entry.c +2149 -0
  70. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry.h +305 -106
  71. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_bhfi.c +5 -4
  72. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_stat.c +9 -3
  73. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_link_resolver.c +104 -62
  74. data/ext/libarchive-3.6.2/libarchive/archive_entry_locale.h +92 -0
  75. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_private.h +65 -49
  76. data/ext/libarchive-3.6.2/libarchive/archive_entry_sparse.c +156 -0
  77. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_stat.c +6 -6
  78. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_strmode.c +1 -1
  79. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_xattr.c +4 -6
  80. data/ext/libarchive-3.6.2/libarchive/archive_getdate.c +1165 -0
  81. data/ext/libarchive-3.6.2/libarchive/archive_getdate.h +39 -0
  82. data/ext/libarchive-3.6.2/libarchive/archive_hmac.c +334 -0
  83. data/ext/libarchive-3.6.2/libarchive/archive_hmac_private.h +117 -0
  84. data/ext/libarchive-3.6.2/libarchive/archive_match.c +1875 -0
  85. data/ext/libarchive-3.6.2/libarchive/archive_openssl_evp_private.h +53 -0
  86. data/ext/libarchive-3.6.2/libarchive/archive_openssl_hmac_private.h +54 -0
  87. data/ext/libarchive-3.6.2/libarchive/archive_options.c +218 -0
  88. data/ext/libarchive-3.6.2/libarchive/archive_options_private.h +51 -0
  89. data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.c +337 -0
  90. data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.h +49 -0
  91. data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.c +463 -0
  92. data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.h +52 -0
  93. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_platform.h +77 -9
  94. data/ext/libarchive-3.6.2/libarchive/archive_platform_acl.h +55 -0
  95. data/ext/libarchive-3.6.2/libarchive/archive_platform_xattr.h +47 -0
  96. data/ext/libarchive-3.6.2/libarchive/archive_ppmd7.c +1168 -0
  97. data/ext/libarchive-3.6.2/libarchive/archive_ppmd7_private.h +119 -0
  98. data/ext/libarchive-3.6.2/libarchive/archive_ppmd8.c +1287 -0
  99. data/ext/libarchive-3.6.2/libarchive/archive_ppmd8_private.h +148 -0
  100. data/ext/libarchive-3.6.2/libarchive/archive_ppmd_private.h +151 -0
  101. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_private.h +74 -18
  102. data/ext/libarchive-3.6.2/libarchive/archive_random.c +272 -0
  103. data/ext/libarchive-3.6.2/libarchive/archive_random_private.h +36 -0
  104. data/ext/libarchive-3.6.2/libarchive/archive_rb.c +709 -0
  105. data/ext/libarchive-3.6.2/libarchive/archive_rb.h +113 -0
  106. data/ext/libarchive-3.6.2/libarchive/archive_read.c +1756 -0
  107. data/ext/libarchive-3.6.2/libarchive/archive_read_add_passphrase.c +190 -0
  108. data/ext/libarchive-3.6.2/libarchive/archive_read_append_filter.c +204 -0
  109. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_data_into_fd.c +64 -18
  110. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_entry_from_file.c +1086 -0
  111. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_posix.c +2732 -0
  112. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_private.h +40 -4
  113. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_set_standard_lookup.c +21 -11
  114. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_windows.c +2479 -0
  115. data/ext/libarchive-3.6.2/libarchive/archive_read_extract.c +60 -0
  116. data/ext/{libarchive-2.8.4/libarchive/archive_read_extract.c → libarchive-3.6.2/libarchive/archive_read_extract2.c} +34 -61
  117. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_fd.c +70 -49
  118. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_file.c +38 -23
  119. data/ext/libarchive-3.6.2/libarchive/archive_read_open_filename.c +586 -0
  120. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_memory.c +58 -28
  121. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_private.h +127 -59
  122. data/ext/libarchive-3.6.2/libarchive/archive_read_set_format.c +117 -0
  123. data/ext/libarchive-3.6.2/libarchive/archive_read_set_options.c +133 -0
  124. 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
  125. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_by_code.c +83 -0
  126. 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
  127. 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
  128. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_grzip.c +112 -0
  129. 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
  130. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lrzip.c +122 -0
  131. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lz4.c +742 -0
  132. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lzop.c +499 -0
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_zstd.c +297 -0
  139. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_7zip.c +3900 -0
  140. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_all.c +89 -0
  141. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_ar.c +126 -72
  142. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_by_code.c +92 -0
  143. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cab.c +3228 -0
  144. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cpio.c +1104 -0
  145. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_empty.c +14 -11
  146. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_iso9660.c +990 -541
  147. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_lha.c +2916 -0
  148. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_mtree.c +2150 -0
  149. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar.c +3797 -0
  150. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar5.c +4251 -0
  151. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_raw.c +38 -31
  152. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_tar.c +1157 -629
  153. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_warc.c +848 -0
  154. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_xar.c +439 -258
  155. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_zip.c +4270 -0
  156. data/ext/libarchive-3.6.2/libarchive/archive_string.c +4240 -0
  157. data/ext/libarchive-3.6.2/libarchive/archive_string.h +243 -0
  158. data/ext/libarchive-3.6.2/libarchive/archive_string_composition.h +2292 -0
  159. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_string_sprintf.c +44 -16
  160. data/ext/libarchive-3.6.2/libarchive/archive_util.c +655 -0
  161. data/ext/libarchive-3.6.2/libarchive/archive_version_details.c +151 -0
  162. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_virtual.c +85 -16
  163. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.c +214 -541
  164. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.h +74 -106
  165. data/ext/libarchive-3.6.2/libarchive/archive_write.c +828 -0
  166. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter.c +72 -0
  167. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_b64encode.c +304 -0
  168. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_by_name.c +77 -0
  169. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_bzip2.c +401 -0
  170. 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
  171. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_grzip.c +135 -0
  172. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_gzip.c +442 -0
  173. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lrzip.c +197 -0
  174. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lz4.c +700 -0
  175. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lzop.c +478 -0
  176. 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
  177. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_program.c +391 -0
  178. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_uuencode.c +295 -0
  179. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_xz.c +545 -0
  180. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_zstd.c +418 -0
  181. data/ext/libarchive-3.6.2/libarchive/archive_write_disk_posix.c +4711 -0
  182. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_private.h +9 -2
  183. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_set_standard_lookup.c +30 -29
  184. data/ext/libarchive-3.6.2/libarchive/archive_write_disk_windows.c +2842 -0
  185. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_fd.c +15 -10
  186. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_file.c +15 -9
  187. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_filename.c +128 -20
  188. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_memory.c +7 -18
  189. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_private.h +72 -29
  190. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format.c +56 -3
  191. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_7zip.c +2322 -0
  192. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ar.c +54 -34
  193. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_by_name.c +20 -2
  194. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio.c +11 -0
  195. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_binary.c +610 -0
  196. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_newc.c +457 -0
  197. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_odc.c +500 -0
  198. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_filter_by_ext.c +142 -0
  199. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_gnutar.c +755 -0
  200. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_iso9660.c +8165 -0
  201. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_mtree.c +2217 -0
  202. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_pax.c +1049 -387
  203. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_private.h +42 -0
  204. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_raw.c +125 -0
  205. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_shar.c +62 -47
  206. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ustar.c +279 -108
  207. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_v7tar.c +638 -0
  208. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_warc.c +453 -0
  209. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_xar.c +3259 -0
  210. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_zip.c +1704 -0
  211. data/ext/libarchive-3.6.2/libarchive/archive_write_set_options.c +130 -0
  212. data/ext/libarchive-3.6.2/libarchive/archive_write_set_passphrase.c +95 -0
  213. data/ext/libarchive-3.6.2/libarchive/archive_xxhash.h +48 -0
  214. data/ext/libarchive-3.6.2/libarchive/config_freebsd.h +271 -0
  215. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/filter_fork.h +10 -5
  216. data/ext/{libarchive-2.8.4/libarchive/filter_fork.c → libarchive-3.6.2/libarchive/filter_fork_posix.c} +98 -19
  217. data/ext/libarchive-3.6.2/libarchive/filter_fork_windows.c +236 -0
  218. data/ext/libarchive-3.6.2/libarchive/xxhash.c +525 -0
  219. data/ext/libarchive-static-makefile +144 -80
  220. data/ext/libarchive-static-wrapper-makefile +1 -1
  221. data/ext/zlib-1.2.13/Makefile.in +404 -0
  222. data/ext/{zlib-1.2.5 → zlib-1.2.13}/adler32.c +51 -34
  223. data/ext/{zlib-1.2.5 → zlib-1.2.13}/compress.c +27 -21
  224. data/ext/zlib-1.2.13/configure +922 -0
  225. data/ext/zlib-1.2.13/crc32.c +1125 -0
  226. data/ext/zlib-1.2.13/crc32.h +9446 -0
  227. data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.c +842 -459
  228. data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.h +37 -33
  229. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzclose.c +0 -0
  230. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzguts.h +103 -16
  231. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzlib.c +155 -53
  232. data/ext/zlib-1.2.13/gzread.c +650 -0
  233. data/ext/zlib-1.2.13/gzwrite.c +677 -0
  234. data/ext/{zlib-1.2.5 → zlib-1.2.13}/infback.c +24 -12
  235. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.c +49 -66
  236. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.h +0 -0
  237. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffixed.h +3 -3
  238. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.c +209 -94
  239. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.h +9 -5
  240. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.c +24 -50
  241. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.h +1 -1
  242. data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.c +135 -198
  243. data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.h +0 -0
  244. data/ext/zlib-1.2.13/uncompr.c +93 -0
  245. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zconf.h +182 -63
  246. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zlib.h +617 -295
  247. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.c +50 -41
  248. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.h +83 -82
  249. metadata +241 -133
  250. data/ext/libarchive-0.1.1/libarchive.c +0 -1762
  251. data/ext/libarchive-2.8.4/Makefile.in +0 -7076
  252. data/ext/libarchive-2.8.4/build/autoconf/compile +0 -143
  253. data/ext/libarchive-2.8.4/build/autoconf/config.guess +0 -1502
  254. data/ext/libarchive-2.8.4/build/autoconf/config.sub +0 -1708
  255. data/ext/libarchive-2.8.4/build/autoconf/depcomp +0 -630
  256. data/ext/libarchive-2.8.4/build/autoconf/install-sh +0 -291
  257. data/ext/libarchive-2.8.4/build/autoconf/ltmain.sh +0 -8406
  258. data/ext/libarchive-2.8.4/build/autoconf/missing +0 -376
  259. data/ext/libarchive-2.8.4/config.h.in +0 -772
  260. data/ext/libarchive-2.8.4/configure +0 -17916
  261. data/ext/libarchive-2.8.4/libarchive/archive.h +0 -741
  262. data/ext/libarchive-2.8.4/libarchive/archive_entry.c +0 -2202
  263. data/ext/libarchive-2.8.4/libarchive/archive_hash.h +0 -281
  264. data/ext/libarchive-2.8.4/libarchive/archive_read.c +0 -1249
  265. data/ext/libarchive-2.8.4/libarchive/archive_read_disk.c +0 -198
  266. data/ext/libarchive-2.8.4/libarchive/archive_read_disk_entry_from_file.c +0 -570
  267. data/ext/libarchive-2.8.4/libarchive/archive_read_open_filename.c +0 -272
  268. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_cpio.c +0 -777
  269. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_mtree.c +0 -1304
  270. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_zip.c +0 -903
  271. data/ext/libarchive-2.8.4/libarchive/archive_string.c +0 -453
  272. data/ext/libarchive-2.8.4/libarchive/archive_string.h +0 -148
  273. data/ext/libarchive-2.8.4/libarchive/archive_util.c +0 -391
  274. data/ext/libarchive-2.8.4/libarchive/archive_write.c +0 -466
  275. data/ext/libarchive-2.8.4/libarchive/archive_write_disk.c +0 -2628
  276. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_bzip2.c +0 -408
  277. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_gzip.c +0 -477
  278. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_none.c +0 -257
  279. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_program.c +0 -347
  280. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_xz.c +0 -438
  281. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio.c +0 -344
  282. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio_newc.c +0 -295
  283. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_mtree.c +0 -1050
  284. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_zip.c +0 -667
  285. data/ext/libarchive-2.8.4/libarchive/config_freebsd.h +0 -154
  286. data/ext/libarchive-2.8.4/libarchive/filter_fork_windows.c +0 -113
  287. data/ext/zlib-1.2.5/Makefile.in +0 -257
  288. data/ext/zlib-1.2.5/configure +0 -596
  289. data/ext/zlib-1.2.5/crc32.c +0 -442
  290. data/ext/zlib-1.2.5/crc32.h +0 -441
  291. data/ext/zlib-1.2.5/example.c +0 -565
  292. data/ext/zlib-1.2.5/gzread.c +0 -653
  293. data/ext/zlib-1.2.5/gzwrite.c +0 -531
  294. data/ext/zlib-1.2.5/minigzip.c +0 -440
  295. data/ext/zlib-1.2.5/uncompr.c +0 -59
@@ -0,0 +1,499 @@
1
+ /*-
2
+ * Copyright (c) 2003-2007 Tim Kientzle
3
+ * Copyright (c) 2012 Michihiro NAKAJIMA
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions
8
+ * are met:
9
+ * 1. Redistributions of source code must retain the above copyright
10
+ * notice, this list of conditions and the following disclaimer.
11
+ * 2. Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
16
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
19
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+ */
26
+
27
+ #include "archive_platform.h"
28
+
29
+ __FBSDID("$FreeBSD$");
30
+
31
+ #ifdef HAVE_UNISTD_H
32
+ #include <unistd.h>
33
+ #endif
34
+ #ifdef HAVE_ERRNO_H
35
+ #include <errno.h>
36
+ #endif
37
+ #ifdef HAVE_STDLIB_H
38
+ #include <stdlib.h>
39
+ #endif
40
+ #ifdef HAVE_STRING_H
41
+ #include <string.h>
42
+ #endif
43
+ #ifdef HAVE_UNISTD_H
44
+ #include <unistd.h>
45
+ #endif
46
+ #ifdef HAVE_LZO_LZOCONF_H
47
+ #include <lzo/lzoconf.h>
48
+ #endif
49
+ #ifdef HAVE_LZO_LZO1X_H
50
+ #include <lzo/lzo1x.h>
51
+ #endif
52
+ #ifdef HAVE_ZLIB_H
53
+ #include <zlib.h> /* for crc32 and adler32 */
54
+ #endif
55
+
56
+ #include "archive.h"
57
+ #if !defined(HAVE_ZLIB_H) &&\
58
+ defined(HAVE_LZO_LZOCONF_H) && defined(HAVE_LZO_LZO1X_H)
59
+ #include "archive_crc32.h"
60
+ #endif
61
+ #include "archive_endian.h"
62
+ #include "archive_private.h"
63
+ #include "archive_read_private.h"
64
+
65
+ #ifndef HAVE_ZLIB_H
66
+ #define adler32 lzo_adler32
67
+ #endif
68
+
69
+ #define LZOP_HEADER_MAGIC "\x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a"
70
+ #define LZOP_HEADER_MAGIC_LEN 9
71
+
72
+ #if defined(HAVE_LZO_LZOCONF_H) && defined(HAVE_LZO_LZO1X_H)
73
+ struct read_lzop {
74
+ unsigned char *out_block;
75
+ size_t out_block_size;
76
+ int64_t total_out;
77
+ int flags;
78
+ uint32_t compressed_cksum;
79
+ uint32_t uncompressed_cksum;
80
+ size_t compressed_size;
81
+ size_t uncompressed_size;
82
+ size_t unconsumed_bytes;
83
+ char in_stream;
84
+ char eof; /* True = found end of compressed data. */
85
+ };
86
+
87
+ #define FILTER 0x0800
88
+ #define CRC32_HEADER 0x1000
89
+ #define EXTRA_FIELD 0x0040
90
+ #define ADLER32_UNCOMPRESSED 0x0001
91
+ #define ADLER32_COMPRESSED 0x0002
92
+ #define CRC32_UNCOMPRESSED 0x0100
93
+ #define CRC32_COMPRESSED 0x0200
94
+ #define MAX_BLOCK_SIZE (64 * 1024 * 1024)
95
+
96
+ static ssize_t lzop_filter_read(struct archive_read_filter *, const void **);
97
+ static int lzop_filter_close(struct archive_read_filter *);
98
+ #endif
99
+
100
+ static int lzop_bidder_bid(struct archive_read_filter_bidder *,
101
+ struct archive_read_filter *);
102
+ static int lzop_bidder_init(struct archive_read_filter *);
103
+
104
+ static const struct archive_read_filter_bidder_vtable
105
+ lzop_bidder_vtable = {
106
+ .bid = lzop_bidder_bid,
107
+ .init = lzop_bidder_init,
108
+ };
109
+
110
+ int
111
+ archive_read_support_filter_lzop(struct archive *_a)
112
+ {
113
+ struct archive_read *a = (struct archive_read *)_a;
114
+
115
+ if (__archive_read_register_bidder(a, NULL, NULL,
116
+ &lzop_bidder_vtable) != ARCHIVE_OK)
117
+ return (ARCHIVE_FATAL);
118
+
119
+ /* Signal the extent of lzop support with the return value here. */
120
+ #if defined(HAVE_LZO_LZOCONF_H) && defined(HAVE_LZO_LZO1X_H)
121
+ return (ARCHIVE_OK);
122
+ #else
123
+ /* Return ARCHIVE_WARN since this always uses an external program. */
124
+ archive_set_error(_a, ARCHIVE_ERRNO_MISC,
125
+ "Using external lzop program for lzop decompression");
126
+ return (ARCHIVE_WARN);
127
+ #endif
128
+ }
129
+
130
+ /*
131
+ * Bidder just verifies the header and returns the number of verified bits.
132
+ */
133
+ static int
134
+ lzop_bidder_bid(struct archive_read_filter_bidder *self,
135
+ struct archive_read_filter *filter)
136
+ {
137
+ const unsigned char *p;
138
+ ssize_t avail;
139
+
140
+ (void)self; /* UNUSED */
141
+
142
+ p = __archive_read_filter_ahead(filter, LZOP_HEADER_MAGIC_LEN, &avail);
143
+ if (p == NULL || avail == 0)
144
+ return (0);
145
+
146
+ if (memcmp(p, LZOP_HEADER_MAGIC, LZOP_HEADER_MAGIC_LEN))
147
+ return (0);
148
+
149
+ return (LZOP_HEADER_MAGIC_LEN * 8);
150
+ }
151
+
152
+ #if !defined(HAVE_LZO_LZOCONF_H) || !defined(HAVE_LZO_LZO1X_H)
153
+ /*
154
+ * If we don't have the library on this system, we can't do the
155
+ * decompression directly. We can, however, try to run "lzop -d"
156
+ * in case that's available.
157
+ */
158
+ static int
159
+ lzop_bidder_init(struct archive_read_filter *self)
160
+ {
161
+ int r;
162
+
163
+ r = __archive_read_program(self, "lzop -d");
164
+ /* Note: We set the format here even if __archive_read_program()
165
+ * above fails. We do, after all, know what the format is
166
+ * even if we weren't able to read it. */
167
+ self->code = ARCHIVE_FILTER_LZOP;
168
+ self->name = "lzop";
169
+ return (r);
170
+ }
171
+ #else
172
+
173
+ static const struct archive_read_filter_vtable
174
+ lzop_reader_vtable = {
175
+ .read = lzop_filter_read,
176
+ .close = lzop_filter_close
177
+ };
178
+
179
+ /*
180
+ * Initialize the filter object.
181
+ */
182
+ static int
183
+ lzop_bidder_init(struct archive_read_filter *self)
184
+ {
185
+ struct read_lzop *state;
186
+
187
+ self->code = ARCHIVE_FILTER_LZOP;
188
+ self->name = "lzop";
189
+
190
+ state = (struct read_lzop *)calloc(sizeof(*state), 1);
191
+ if (state == NULL) {
192
+ archive_set_error(&self->archive->archive, ENOMEM,
193
+ "Can't allocate data for lzop decompression");
194
+ return (ARCHIVE_FATAL);
195
+ }
196
+
197
+ self->data = state;
198
+ self->vtable = &lzop_reader_vtable;
199
+
200
+ return (ARCHIVE_OK);
201
+ }
202
+
203
+ static int
204
+ consume_header(struct archive_read_filter *self)
205
+ {
206
+ struct read_lzop *state = (struct read_lzop *)self->data;
207
+ const unsigned char *p, *_p;
208
+ unsigned checksum, flags, len, method, version;
209
+
210
+ /*
211
+ * Check LZOP magic code.
212
+ */
213
+ p = __archive_read_filter_ahead(self->upstream,
214
+ LZOP_HEADER_MAGIC_LEN, NULL);
215
+ if (p == NULL)
216
+ return (ARCHIVE_EOF);
217
+
218
+ if (memcmp(p, LZOP_HEADER_MAGIC, LZOP_HEADER_MAGIC_LEN))
219
+ return (ARCHIVE_EOF);
220
+ __archive_read_filter_consume(self->upstream,
221
+ LZOP_HEADER_MAGIC_LEN);
222
+
223
+ p = __archive_read_filter_ahead(self->upstream, 29, NULL);
224
+ if (p == NULL)
225
+ goto truncated;
226
+ _p = p;
227
+ version = archive_be16dec(p);
228
+ p += 4;/* version(2 bytes) + library version(2 bytes) */
229
+
230
+ if (version >= 0x940) {
231
+ unsigned reqversion = archive_be16dec(p); p += 2;
232
+ if (reqversion < 0x900) {
233
+ archive_set_error(&self->archive->archive,
234
+ ARCHIVE_ERRNO_MISC, "Invalid required version");
235
+ return (ARCHIVE_FAILED);
236
+ }
237
+ }
238
+
239
+ method = *p++;
240
+ if (method < 1 || method > 3) {
241
+ archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC,
242
+ "Unsupported method");
243
+ return (ARCHIVE_FAILED);
244
+ }
245
+
246
+ if (version >= 0x940) {
247
+ unsigned level = *p++;
248
+ #if 0
249
+ unsigned default_level[] = {0, 3, 1, 9};
250
+ #endif
251
+ if (level == 0)
252
+ /* Method is 1..3 here due to check above. */
253
+ #if 0 /* Avoid an error Clang Static Analyzer claims
254
+ "Value stored to 'level' is never read". */
255
+ level = default_level[method];
256
+ #else
257
+ ;/* NOP */
258
+ #endif
259
+ else if (level > 9) {
260
+ archive_set_error(&self->archive->archive,
261
+ ARCHIVE_ERRNO_MISC, "Invalid level");
262
+ return (ARCHIVE_FAILED);
263
+ }
264
+ }
265
+
266
+ flags = archive_be32dec(p); p += 4;
267
+
268
+ if (flags & FILTER)
269
+ p += 4; /* Skip filter */
270
+ p += 4; /* Skip mode */
271
+ if (version >= 0x940)
272
+ p += 8; /* Skip mtime */
273
+ else
274
+ p += 4; /* Skip mtime */
275
+ len = *p++; /* Read filename length */
276
+ len += p - _p;
277
+ /* Make sure we have all bytes we need to calculate checksum. */
278
+ p = __archive_read_filter_ahead(self->upstream, len + 4, NULL);
279
+ if (p == NULL)
280
+ goto truncated;
281
+ if (flags & CRC32_HEADER)
282
+ checksum = crc32(crc32(0, NULL, 0), p, len);
283
+ else
284
+ checksum = adler32(adler32(0, NULL, 0), p, len);
285
+ if (archive_be32dec(p + len) != checksum)
286
+ #ifndef DONT_FAIL_ON_CRC_ERROR
287
+ goto corrupted;
288
+ #endif
289
+ __archive_read_filter_consume(self->upstream, len + 4);
290
+ if (flags & EXTRA_FIELD) {
291
+ /* Skip extra field */
292
+ p = __archive_read_filter_ahead(self->upstream, 4, NULL);
293
+ if (p == NULL)
294
+ goto truncated;
295
+ len = archive_be32dec(p);
296
+ __archive_read_filter_consume(self->upstream, len + 4 + 4);
297
+ }
298
+ state->flags = flags;
299
+ state->in_stream = 1;
300
+ return (ARCHIVE_OK);
301
+ truncated:
302
+ archive_set_error(&self->archive->archive,
303
+ ARCHIVE_ERRNO_FILE_FORMAT, "Truncated lzop data");
304
+ return (ARCHIVE_FAILED);
305
+ corrupted:
306
+ archive_set_error(&self->archive->archive,
307
+ ARCHIVE_ERRNO_FILE_FORMAT, "Corrupted lzop header");
308
+ return (ARCHIVE_FAILED);
309
+ }
310
+
311
+ static int
312
+ consume_block_info(struct archive_read_filter *self)
313
+ {
314
+ struct read_lzop *state = (struct read_lzop *)self->data;
315
+ const unsigned char *p;
316
+ unsigned flags = state->flags;
317
+
318
+ p = __archive_read_filter_ahead(self->upstream, 4, NULL);
319
+ if (p == NULL)
320
+ goto truncated;
321
+ state->uncompressed_size = archive_be32dec(p);
322
+ __archive_read_filter_consume(self->upstream, 4);
323
+ if (state->uncompressed_size == 0)
324
+ return (ARCHIVE_EOF);
325
+ if (state->uncompressed_size > MAX_BLOCK_SIZE)
326
+ goto corrupted;
327
+
328
+ p = __archive_read_filter_ahead(self->upstream, 4, NULL);
329
+ if (p == NULL)
330
+ goto truncated;
331
+ state->compressed_size = archive_be32dec(p);
332
+ __archive_read_filter_consume(self->upstream, 4);
333
+ if (state->compressed_size > state->uncompressed_size)
334
+ goto corrupted;
335
+
336
+ if (flags & (CRC32_UNCOMPRESSED | ADLER32_UNCOMPRESSED)) {
337
+ p = __archive_read_filter_ahead(self->upstream, 4, NULL);
338
+ if (p == NULL)
339
+ goto truncated;
340
+ state->compressed_cksum = state->uncompressed_cksum =
341
+ archive_be32dec(p);
342
+ __archive_read_filter_consume(self->upstream, 4);
343
+ }
344
+ if ((flags & (CRC32_COMPRESSED | ADLER32_COMPRESSED)) &&
345
+ state->compressed_size < state->uncompressed_size) {
346
+ p = __archive_read_filter_ahead(self->upstream, 4, NULL);
347
+ if (p == NULL)
348
+ goto truncated;
349
+ state->compressed_cksum = archive_be32dec(p);
350
+ __archive_read_filter_consume(self->upstream, 4);
351
+ }
352
+ return (ARCHIVE_OK);
353
+ truncated:
354
+ archive_set_error(&self->archive->archive,
355
+ ARCHIVE_ERRNO_FILE_FORMAT, "Truncated lzop data");
356
+ return (ARCHIVE_FAILED);
357
+ corrupted:
358
+ archive_set_error(&self->archive->archive,
359
+ ARCHIVE_ERRNO_FILE_FORMAT, "Corrupted lzop header");
360
+ return (ARCHIVE_FAILED);
361
+ }
362
+
363
+ static ssize_t
364
+ lzop_filter_read(struct archive_read_filter *self, const void **p)
365
+ {
366
+ struct read_lzop *state = (struct read_lzop *)self->data;
367
+ const void *b;
368
+ lzo_uint out_size;
369
+ uint32_t cksum;
370
+ int ret, r;
371
+
372
+ if (state->unconsumed_bytes) {
373
+ __archive_read_filter_consume(self->upstream,
374
+ state->unconsumed_bytes);
375
+ state->unconsumed_bytes = 0;
376
+ }
377
+ if (state->eof)
378
+ return (0);
379
+
380
+ for (;;) {
381
+ if (!state->in_stream) {
382
+ ret = consume_header(self);
383
+ if (ret < ARCHIVE_OK)
384
+ return (ret);
385
+ if (ret == ARCHIVE_EOF) {
386
+ state->eof = 1;
387
+ return (0);
388
+ }
389
+ }
390
+ ret = consume_block_info(self);
391
+ if (ret < ARCHIVE_OK)
392
+ return (ret);
393
+ if (ret == ARCHIVE_EOF)
394
+ state->in_stream = 0;
395
+ else
396
+ break;
397
+ }
398
+
399
+ if (state->out_block == NULL ||
400
+ state->out_block_size < state->uncompressed_size) {
401
+ void *new_block;
402
+
403
+ new_block = realloc(state->out_block, state->uncompressed_size);
404
+ if (new_block == NULL) {
405
+ archive_set_error(&self->archive->archive, ENOMEM,
406
+ "Can't allocate data for lzop decompression");
407
+ return (ARCHIVE_FATAL);
408
+ }
409
+ state->out_block = new_block;
410
+ state->out_block_size = state->uncompressed_size;
411
+ }
412
+
413
+ b = __archive_read_filter_ahead(self->upstream,
414
+ state->compressed_size, NULL);
415
+ if (b == NULL) {
416
+ archive_set_error(&self->archive->archive,
417
+ ARCHIVE_ERRNO_FILE_FORMAT, "Truncated lzop data");
418
+ return (ARCHIVE_FATAL);
419
+ }
420
+ if (state->flags & CRC32_COMPRESSED)
421
+ cksum = crc32(crc32(0, NULL, 0), b, state->compressed_size);
422
+ else if (state->flags & ADLER32_COMPRESSED)
423
+ cksum = adler32(adler32(0, NULL, 0), b, state->compressed_size);
424
+ else
425
+ cksum = state->compressed_cksum;
426
+ if (cksum != state->compressed_cksum) {
427
+ archive_set_error(&self->archive->archive,
428
+ ARCHIVE_ERRNO_MISC, "Corrupted data");
429
+ return (ARCHIVE_FATAL);
430
+ }
431
+
432
+ /*
433
+ * If the both uncompressed size and compressed size are the same,
434
+ * we do not decompress this block.
435
+ */
436
+ if (state->uncompressed_size == state->compressed_size) {
437
+ *p = b;
438
+ state->total_out += state->compressed_size;
439
+ state->unconsumed_bytes = state->compressed_size;
440
+ return ((ssize_t)state->uncompressed_size);
441
+ }
442
+
443
+ /*
444
+ * Drive lzo uncompression.
445
+ */
446
+ out_size = (lzo_uint)state->uncompressed_size;
447
+ r = lzo1x_decompress_safe(b, (lzo_uint)state->compressed_size,
448
+ state->out_block, &out_size, NULL);
449
+ switch (r) {
450
+ case LZO_E_OK:
451
+ if (out_size == state->uncompressed_size)
452
+ break;
453
+ archive_set_error(&self->archive->archive,
454
+ ARCHIVE_ERRNO_MISC, "Corrupted data");
455
+ return (ARCHIVE_FATAL);
456
+ case LZO_E_OUT_OF_MEMORY:
457
+ archive_set_error(&self->archive->archive, ENOMEM,
458
+ "lzop decompression failed: out of memory");
459
+ return (ARCHIVE_FATAL);
460
+ default:
461
+ archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC,
462
+ "lzop decompression failed: %d", r);
463
+ return (ARCHIVE_FATAL);
464
+ }
465
+
466
+ if (state->flags & CRC32_UNCOMPRESSED)
467
+ cksum = crc32(crc32(0, NULL, 0), state->out_block,
468
+ state->uncompressed_size);
469
+ else if (state->flags & ADLER32_UNCOMPRESSED)
470
+ cksum = adler32(adler32(0, NULL, 0), state->out_block,
471
+ state->uncompressed_size);
472
+ else
473
+ cksum = state->uncompressed_cksum;
474
+ if (cksum != state->uncompressed_cksum) {
475
+ archive_set_error(&self->archive->archive,
476
+ ARCHIVE_ERRNO_MISC, "Corrupted data");
477
+ return (ARCHIVE_FATAL);
478
+ }
479
+
480
+ __archive_read_filter_consume(self->upstream, state->compressed_size);
481
+ *p = state->out_block;
482
+ state->total_out += out_size;
483
+ return ((ssize_t)out_size);
484
+ }
485
+
486
+ /*
487
+ * Clean up the decompressor.
488
+ */
489
+ static int
490
+ lzop_filter_close(struct archive_read_filter *self)
491
+ {
492
+ struct read_lzop *state = (struct read_lzop *)self->data;
493
+
494
+ free(state->out_block);
495
+ free(state);
496
+ return (ARCHIVE_OK);
497
+ }
498
+
499
+ #endif
@@ -24,17 +24,29 @@
24
24
  */
25
25
 
26
26
  #include "archive_platform.h"
27
- __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_support_compression_none.c 185679 2008-12-06 06:45:15Z kientzle $");
27
+ __FBSDID("$FreeBSD$");
28
28
 
29
29
  #include "archive.h"
30
+ #include "archive_private.h"
31
+
32
+ #if ARCHIVE_VERSION_NUMBER < 4000000
33
+ /* Deprecated; remove in libarchive 4.0 */
34
+ int
35
+ archive_read_support_compression_none(struct archive *a)
36
+ {
37
+ return archive_read_support_filter_none(a);
38
+ }
39
+ #endif
30
40
 
31
41
  /*
32
42
  * Uncompressed streams are handled implicitly by the read core,
33
43
  * so this is now a no-op.
34
44
  */
35
45
  int
36
- archive_read_support_compression_none(struct archive *a)
46
+ archive_read_support_filter_none(struct archive *a)
37
47
  {
38
- (void)a; /* UNUSED */
48
+ archive_check_magic(a, ARCHIVE_READ_MAGIC,
49
+ ARCHIVE_STATE_NEW, "archive_read_support_filter_none");
50
+
39
51
  return (ARCHIVE_OK);
40
52
  }