libarchive-static 1.0.5 → 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 (296) hide show
  1. checksums.yaml +5 -5
  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_internal.h +0 -1
  20. data/ext/libarchive-0.1.1/ext/libarchive_reader.c +6 -4
  21. data/ext/libarchive-0.1.1/ext/libarchive_reader.o +0 -0
  22. data/ext/libarchive-0.1.1/ext/libarchive_ruby.so +0 -0
  23. data/ext/libarchive-0.1.1/ext/libarchive_win32.h +1 -1
  24. data/ext/libarchive-0.1.1/ext/libarchive_writer.c +2 -2
  25. data/ext/libarchive-0.1.1/ext/libarchive_writer.o +0 -0
  26. data/ext/libarchive-3.6.2/Makefile.in +16892 -0
  27. data/ext/libarchive-3.6.2/build/autoconf/ax_append_compile_flags.m4 +67 -0
  28. data/ext/libarchive-3.6.2/build/autoconf/ax_append_flag.m4 +71 -0
  29. data/ext/libarchive-3.6.2/build/autoconf/ax_check_compile_flag.m4 +74 -0
  30. data/ext/libarchive-3.6.2/build/autoconf/ax_require_defined.m4 +37 -0
  31. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/check_stdcall_func.m4 +0 -0
  32. data/ext/libarchive-3.6.2/build/autoconf/compile +348 -0
  33. data/ext/libarchive-3.6.2/build/autoconf/config.guess +1754 -0
  34. data/ext/libarchive-3.6.2/build/autoconf/config.rpath +696 -0
  35. data/ext/libarchive-3.6.2/build/autoconf/config.sub +1890 -0
  36. data/ext/libarchive-3.6.2/build/autoconf/depcomp +791 -0
  37. data/ext/libarchive-3.6.2/build/autoconf/iconv.m4 +271 -0
  38. data/ext/libarchive-3.6.2/build/autoconf/install-sh +541 -0
  39. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/la_uid_t.m4 +0 -0
  40. data/ext/libarchive-3.6.2/build/autoconf/lib-ld.m4 +109 -0
  41. data/ext/libarchive-3.6.2/build/autoconf/lib-link.m4 +777 -0
  42. data/ext/libarchive-3.6.2/build/autoconf/lib-prefix.m4 +224 -0
  43. data/ext/libarchive-3.6.2/build/autoconf/ltmain.sh +11251 -0
  44. data/ext/libarchive-3.6.2/build/autoconf/m4_ax_compile_check_sizeof.m4 +115 -0
  45. data/ext/libarchive-3.6.2/build/autoconf/missing +215 -0
  46. data/ext/libarchive-3.6.2/build/autoconf/test-driver +153 -0
  47. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/pkgconfig/libarchive.pc.in +4 -1
  48. data/ext/libarchive-3.6.2/config.h.in +1504 -0
  49. data/ext/libarchive-3.6.2/configure +25558 -0
  50. data/ext/libarchive-3.6.2/libarchive/archive.h +1212 -0
  51. data/ext/libarchive-3.6.2/libarchive/archive_acl.c +2097 -0
  52. data/ext/libarchive-3.6.2/libarchive/archive_acl_private.h +83 -0
  53. data/ext/libarchive-3.6.2/libarchive/archive_blake2.h +197 -0
  54. data/ext/libarchive-3.6.2/libarchive/archive_blake2_impl.h +161 -0
  55. data/ext/libarchive-3.6.2/libarchive/archive_blake2s_ref.c +369 -0
  56. data/ext/libarchive-3.6.2/libarchive/archive_blake2sp_ref.c +361 -0
  57. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_check_magic.c +63 -22
  58. data/ext/libarchive-3.6.2/libarchive/archive_cmdline.c +227 -0
  59. data/ext/libarchive-3.6.2/libarchive/archive_cmdline_private.h +47 -0
  60. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_crc32.h +17 -0
  61. data/ext/libarchive-3.6.2/libarchive/archive_cryptor.c +534 -0
  62. data/ext/libarchive-3.6.2/libarchive/archive_cryptor_private.h +188 -0
  63. data/ext/libarchive-3.6.2/libarchive/archive_digest.c +1505 -0
  64. data/ext/libarchive-3.6.2/libarchive/archive_digest_private.h +416 -0
  65. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_darwin.c +559 -0
  66. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_freebsd.c +712 -0
  67. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_linux.c +760 -0
  68. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_sunos.c +824 -0
  69. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_endian.h +48 -15
  70. data/ext/libarchive-3.6.2/libarchive/archive_entry.c +2149 -0
  71. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry.h +305 -106
  72. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_bhfi.c +5 -4
  73. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_stat.c +9 -3
  74. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_link_resolver.c +104 -62
  75. data/ext/libarchive-3.6.2/libarchive/archive_entry_locale.h +92 -0
  76. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_private.h +65 -49
  77. data/ext/libarchive-3.6.2/libarchive/archive_entry_sparse.c +156 -0
  78. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_stat.c +6 -6
  79. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_strmode.c +1 -1
  80. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_xattr.c +4 -6
  81. data/ext/libarchive-3.6.2/libarchive/archive_getdate.c +1165 -0
  82. data/ext/libarchive-3.6.2/libarchive/archive_getdate.h +39 -0
  83. data/ext/libarchive-3.6.2/libarchive/archive_hmac.c +334 -0
  84. data/ext/libarchive-3.6.2/libarchive/archive_hmac_private.h +117 -0
  85. data/ext/libarchive-3.6.2/libarchive/archive_match.c +1875 -0
  86. data/ext/libarchive-3.6.2/libarchive/archive_openssl_evp_private.h +53 -0
  87. data/ext/libarchive-3.6.2/libarchive/archive_openssl_hmac_private.h +54 -0
  88. data/ext/libarchive-3.6.2/libarchive/archive_options.c +218 -0
  89. data/ext/libarchive-3.6.2/libarchive/archive_options_private.h +51 -0
  90. data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.c +337 -0
  91. data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.h +49 -0
  92. data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.c +463 -0
  93. data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.h +52 -0
  94. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_platform.h +77 -9
  95. data/ext/libarchive-3.6.2/libarchive/archive_platform_acl.h +55 -0
  96. data/ext/libarchive-3.6.2/libarchive/archive_platform_xattr.h +47 -0
  97. data/ext/libarchive-3.6.2/libarchive/archive_ppmd7.c +1168 -0
  98. data/ext/libarchive-3.6.2/libarchive/archive_ppmd7_private.h +119 -0
  99. data/ext/libarchive-3.6.2/libarchive/archive_ppmd8.c +1287 -0
  100. data/ext/libarchive-3.6.2/libarchive/archive_ppmd8_private.h +148 -0
  101. data/ext/libarchive-3.6.2/libarchive/archive_ppmd_private.h +151 -0
  102. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_private.h +74 -18
  103. data/ext/libarchive-3.6.2/libarchive/archive_random.c +272 -0
  104. data/ext/libarchive-3.6.2/libarchive/archive_random_private.h +36 -0
  105. data/ext/libarchive-3.6.2/libarchive/archive_rb.c +709 -0
  106. data/ext/libarchive-3.6.2/libarchive/archive_rb.h +113 -0
  107. data/ext/libarchive-3.6.2/libarchive/archive_read.c +1756 -0
  108. data/ext/libarchive-3.6.2/libarchive/archive_read_add_passphrase.c +190 -0
  109. data/ext/libarchive-3.6.2/libarchive/archive_read_append_filter.c +204 -0
  110. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_data_into_fd.c +64 -18
  111. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_entry_from_file.c +1086 -0
  112. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_posix.c +2732 -0
  113. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_private.h +40 -4
  114. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_set_standard_lookup.c +21 -11
  115. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_windows.c +2479 -0
  116. data/ext/libarchive-3.6.2/libarchive/archive_read_extract.c +60 -0
  117. data/ext/{libarchive-2.8.4/libarchive/archive_read_extract.c → libarchive-3.6.2/libarchive/archive_read_extract2.c} +34 -61
  118. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_fd.c +70 -49
  119. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_file.c +38 -23
  120. data/ext/libarchive-3.6.2/libarchive/archive_read_open_filename.c +586 -0
  121. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_memory.c +58 -28
  122. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_private.h +127 -59
  123. data/ext/libarchive-3.6.2/libarchive/archive_read_set_format.c +117 -0
  124. data/ext/libarchive-3.6.2/libarchive/archive_read_set_options.c +133 -0
  125. 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
  126. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_by_code.c +83 -0
  127. 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
  128. 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
  129. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_grzip.c +112 -0
  130. 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
  131. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lrzip.c +122 -0
  132. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lz4.c +742 -0
  133. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lzop.c +499 -0
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_zstd.c +297 -0
  140. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_7zip.c +3900 -0
  141. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_all.c +89 -0
  142. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_ar.c +126 -72
  143. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_by_code.c +92 -0
  144. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cab.c +3228 -0
  145. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cpio.c +1104 -0
  146. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_empty.c +14 -11
  147. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_iso9660.c +990 -541
  148. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_lha.c +2916 -0
  149. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_mtree.c +2150 -0
  150. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar.c +3797 -0
  151. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar5.c +4251 -0
  152. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_raw.c +38 -31
  153. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_tar.c +1157 -629
  154. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_warc.c +848 -0
  155. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_xar.c +439 -258
  156. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_zip.c +4270 -0
  157. data/ext/libarchive-3.6.2/libarchive/archive_string.c +4240 -0
  158. data/ext/libarchive-3.6.2/libarchive/archive_string.h +243 -0
  159. data/ext/libarchive-3.6.2/libarchive/archive_string_composition.h +2292 -0
  160. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_string_sprintf.c +44 -16
  161. data/ext/libarchive-3.6.2/libarchive/archive_util.c +655 -0
  162. data/ext/libarchive-3.6.2/libarchive/archive_version_details.c +151 -0
  163. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_virtual.c +85 -16
  164. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.c +214 -541
  165. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.h +74 -106
  166. data/ext/libarchive-3.6.2/libarchive/archive_write.c +828 -0
  167. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter.c +72 -0
  168. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_b64encode.c +304 -0
  169. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_by_name.c +77 -0
  170. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_bzip2.c +401 -0
  171. 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
  172. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_grzip.c +135 -0
  173. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_gzip.c +442 -0
  174. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lrzip.c +197 -0
  175. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lz4.c +700 -0
  176. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lzop.c +478 -0
  177. 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
  178. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_program.c +391 -0
  179. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_uuencode.c +295 -0
  180. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_xz.c +545 -0
  181. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_zstd.c +418 -0
  182. data/ext/libarchive-3.6.2/libarchive/archive_write_disk_posix.c +4711 -0
  183. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_private.h +9 -2
  184. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_set_standard_lookup.c +30 -29
  185. data/ext/libarchive-3.6.2/libarchive/archive_write_disk_windows.c +2842 -0
  186. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_fd.c +15 -10
  187. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_file.c +15 -9
  188. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_filename.c +128 -20
  189. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_memory.c +7 -18
  190. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_private.h +72 -29
  191. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format.c +56 -3
  192. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_7zip.c +2322 -0
  193. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ar.c +54 -34
  194. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_by_name.c +20 -2
  195. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio.c +11 -0
  196. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_binary.c +610 -0
  197. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_newc.c +457 -0
  198. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_odc.c +500 -0
  199. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_filter_by_ext.c +142 -0
  200. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_gnutar.c +755 -0
  201. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_iso9660.c +8165 -0
  202. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_mtree.c +2217 -0
  203. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_pax.c +1049 -387
  204. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_private.h +42 -0
  205. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_raw.c +125 -0
  206. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_shar.c +62 -47
  207. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ustar.c +279 -108
  208. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_v7tar.c +638 -0
  209. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_warc.c +453 -0
  210. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_xar.c +3259 -0
  211. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_zip.c +1704 -0
  212. data/ext/libarchive-3.6.2/libarchive/archive_write_set_options.c +130 -0
  213. data/ext/libarchive-3.6.2/libarchive/archive_write_set_passphrase.c +95 -0
  214. data/ext/libarchive-3.6.2/libarchive/archive_xxhash.h +48 -0
  215. data/ext/libarchive-3.6.2/libarchive/config_freebsd.h +271 -0
  216. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/filter_fork.h +10 -5
  217. data/ext/{libarchive-2.8.4/libarchive/filter_fork.c → libarchive-3.6.2/libarchive/filter_fork_posix.c} +98 -19
  218. data/ext/libarchive-3.6.2/libarchive/filter_fork_windows.c +236 -0
  219. data/ext/libarchive-3.6.2/libarchive/xxhash.c +525 -0
  220. data/ext/libarchive-static-makefile +144 -80
  221. data/ext/libarchive-static-wrapper-makefile +1 -1
  222. data/ext/zlib-1.2.13/Makefile.in +404 -0
  223. data/ext/{zlib-1.2.5 → zlib-1.2.13}/adler32.c +51 -34
  224. data/ext/{zlib-1.2.5 → zlib-1.2.13}/compress.c +27 -21
  225. data/ext/zlib-1.2.13/configure +922 -0
  226. data/ext/zlib-1.2.13/crc32.c +1125 -0
  227. data/ext/zlib-1.2.13/crc32.h +9446 -0
  228. data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.c +842 -459
  229. data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.h +37 -33
  230. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzclose.c +0 -0
  231. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzguts.h +103 -16
  232. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzlib.c +155 -53
  233. data/ext/zlib-1.2.13/gzread.c +650 -0
  234. data/ext/zlib-1.2.13/gzwrite.c +677 -0
  235. data/ext/{zlib-1.2.5 → zlib-1.2.13}/infback.c +24 -12
  236. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.c +49 -66
  237. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.h +0 -0
  238. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffixed.h +3 -3
  239. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.c +209 -94
  240. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.h +9 -5
  241. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.c +24 -50
  242. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.h +1 -1
  243. data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.c +135 -198
  244. data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.h +0 -0
  245. data/ext/zlib-1.2.13/uncompr.c +93 -0
  246. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zconf.h +182 -63
  247. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zlib.h +617 -295
  248. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.c +50 -41
  249. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.h +83 -82
  250. metadata +244 -137
  251. data/ext/libarchive-0.1.1/libarchive.c +0 -1762
  252. data/ext/libarchive-2.8.4/Makefile.in +0 -7076
  253. data/ext/libarchive-2.8.4/build/autoconf/compile +0 -143
  254. data/ext/libarchive-2.8.4/build/autoconf/config.guess +0 -1502
  255. data/ext/libarchive-2.8.4/build/autoconf/config.sub +0 -1708
  256. data/ext/libarchive-2.8.4/build/autoconf/depcomp +0 -630
  257. data/ext/libarchive-2.8.4/build/autoconf/install-sh +0 -291
  258. data/ext/libarchive-2.8.4/build/autoconf/ltmain.sh +0 -8406
  259. data/ext/libarchive-2.8.4/build/autoconf/missing +0 -376
  260. data/ext/libarchive-2.8.4/config.h.in +0 -772
  261. data/ext/libarchive-2.8.4/configure +0 -17916
  262. data/ext/libarchive-2.8.4/libarchive/archive.h +0 -741
  263. data/ext/libarchive-2.8.4/libarchive/archive_entry.c +0 -2202
  264. data/ext/libarchive-2.8.4/libarchive/archive_hash.h +0 -281
  265. data/ext/libarchive-2.8.4/libarchive/archive_read.c +0 -1249
  266. data/ext/libarchive-2.8.4/libarchive/archive_read_disk.c +0 -198
  267. data/ext/libarchive-2.8.4/libarchive/archive_read_disk_entry_from_file.c +0 -570
  268. data/ext/libarchive-2.8.4/libarchive/archive_read_open_filename.c +0 -272
  269. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_cpio.c +0 -777
  270. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_mtree.c +0 -1304
  271. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_zip.c +0 -903
  272. data/ext/libarchive-2.8.4/libarchive/archive_string.c +0 -453
  273. data/ext/libarchive-2.8.4/libarchive/archive_string.h +0 -148
  274. data/ext/libarchive-2.8.4/libarchive/archive_util.c +0 -391
  275. data/ext/libarchive-2.8.4/libarchive/archive_write.c +0 -466
  276. data/ext/libarchive-2.8.4/libarchive/archive_write_disk.c +0 -2628
  277. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_bzip2.c +0 -408
  278. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_gzip.c +0 -477
  279. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_none.c +0 -257
  280. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_program.c +0 -347
  281. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_xz.c +0 -438
  282. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio.c +0 -344
  283. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio_newc.c +0 -295
  284. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_mtree.c +0 -1050
  285. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_zip.c +0 -667
  286. data/ext/libarchive-2.8.4/libarchive/config_freebsd.h +0 -154
  287. data/ext/libarchive-2.8.4/libarchive/filter_fork_windows.c +0 -113
  288. data/ext/zlib-1.2.5/Makefile.in +0 -257
  289. data/ext/zlib-1.2.5/configure +0 -596
  290. data/ext/zlib-1.2.5/crc32.c +0 -442
  291. data/ext/zlib-1.2.5/crc32.h +0 -441
  292. data/ext/zlib-1.2.5/example.c +0 -565
  293. data/ext/zlib-1.2.5/gzread.c +0 -653
  294. data/ext/zlib-1.2.5/gzwrite.c +0 -531
  295. data/ext/zlib-1.2.5/minigzip.c +0 -440
  296. 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
  }