libarchive-static 1.0.6 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,5 +1,5 @@
1
1
  /*-
2
- * Copyright (c) 2009 Michihiro NAKAJIMA
2
+ * Copyright (c) 2009-2011 Michihiro NAKAJIMA
3
3
  * All rights reserved.
4
4
  *
5
5
  * Redistribution and use in source and binary forms, with or without
@@ -24,7 +24,7 @@
24
24
  */
25
25
 
26
26
  #include "archive_platform.h"
27
- __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_support_compression_uu.c 201248 2009-12-30 06:12:03Z kientzle $");
27
+ __FBSDID("$FreeBSD$");
28
28
 
29
29
  #ifdef HAVE_ERRNO_H
30
30
  #include <errno.h>
@@ -40,6 +40,9 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_support_compression_uu.c 20
40
40
  #include "archive_private.h"
41
41
  #include "archive_read_private.h"
42
42
 
43
+ /* Maximum lookahead during bid phase */
44
+ #define UUENCODE_BID_MAX_READ 128*1024 /* in bytes */
45
+
43
46
  struct uudecode {
44
47
  int64_t total;
45
48
  unsigned char *in_buff;
@@ -53,6 +56,7 @@ struct uudecode {
53
56
  #define ST_READ_UU 1
54
57
  #define ST_UUEND 2
55
58
  #define ST_READ_BASE64 3
59
+ #define ST_IGNORE 4
56
60
  };
57
61
 
58
62
  static int uudecode_bidder_bid(struct archive_read_filter_bidder *,
@@ -63,23 +67,28 @@ static ssize_t uudecode_filter_read(struct archive_read_filter *,
63
67
  const void **);
64
68
  static int uudecode_filter_close(struct archive_read_filter *);
65
69
 
70
+ #if ARCHIVE_VERSION_NUMBER < 4000000
71
+ /* Deprecated; remove in libarchive 4.0 */
66
72
  int
67
- archive_read_support_compression_uu(struct archive *_a)
73
+ archive_read_support_compression_uu(struct archive *a)
68
74
  {
69
- struct archive_read *a = (struct archive_read *)_a;
70
- struct archive_read_filter_bidder *bidder;
75
+ return archive_read_support_filter_uu(a);
76
+ }
77
+ #endif
71
78
 
72
- bidder = __archive_read_get_bidder(a);
73
- archive_clear_error(_a);
74
- if (bidder == NULL)
75
- return (ARCHIVE_FATAL);
79
+ static const struct archive_read_filter_bidder_vtable
80
+ uudecode_bidder_vtable = {
81
+ .bid = uudecode_bidder_bid,
82
+ .init = uudecode_bidder_init,
83
+ };
76
84
 
77
- bidder->data = NULL;
78
- bidder->bid = uudecode_bidder_bid;
79
- bidder->init = uudecode_bidder_init;
80
- bidder->options = NULL;
81
- bidder->free = NULL;
82
- return (ARCHIVE_OK);
85
+ int
86
+ archive_read_support_filter_uu(struct archive *_a)
87
+ {
88
+ struct archive_read *a = (struct archive_read *)_a;
89
+
90
+ return __archive_read_register_bidder(a, NULL, "uu",
91
+ &uudecode_bidder_vtable);
83
92
  }
84
93
 
85
94
  static const unsigned char ascii[256] = {
@@ -194,7 +203,8 @@ get_line(const unsigned char *b, ssize_t avail, ssize_t *nlsize)
194
203
 
195
204
  static ssize_t
196
205
  bid_get_line(struct archive_read_filter *filter,
197
- const unsigned char **b, ssize_t *avail, ssize_t *ravail, ssize_t *nl)
206
+ const unsigned char **b, ssize_t *avail, ssize_t *ravail,
207
+ ssize_t *nl, size_t* nbytes_read)
198
208
  {
199
209
  ssize_t len;
200
210
  int quit;
@@ -205,24 +215,37 @@ bid_get_line(struct archive_read_filter *filter,
205
215
  len = 0;
206
216
  } else
207
217
  len = get_line(*b, *avail, nl);
218
+
208
219
  /*
209
220
  * Read bytes more while it does not reach the end of line.
210
221
  */
211
- while (*nl == 0 && len == *avail && !quit) {
222
+ while (*nl == 0 && len == *avail && !quit &&
223
+ *nbytes_read < UUENCODE_BID_MAX_READ) {
212
224
  ssize_t diff = *ravail - *avail;
225
+ size_t nbytes_req = (*ravail+1023) & ~1023U;
226
+ ssize_t tested;
227
+
228
+ /* Increase reading bytes if it is not enough to at least
229
+ * new two lines. */
230
+ if (nbytes_req < (size_t)*ravail + 160)
231
+ nbytes_req <<= 1;
213
232
 
214
- *b = __archive_read_filter_ahead(filter, 160 + *ravail, avail);
233
+ *b = __archive_read_filter_ahead(filter, nbytes_req, avail);
215
234
  if (*b == NULL) {
216
235
  if (*ravail >= *avail)
217
236
  return (0);
218
- /* Reading bytes reaches the end of file. */
237
+ /* Reading bytes reaches the end of a stream. */
219
238
  *b = __archive_read_filter_ahead(filter, *avail, avail);
220
239
  quit = 1;
221
240
  }
241
+ *nbytes_read = *avail;
222
242
  *ravail = *avail;
223
243
  *b += diff;
224
244
  *avail -= diff;
225
- len = get_line(*b, *avail, nl);
245
+ tested = len;/* Skip some bytes we already determined. */
246
+ len = get_line(*b + tested, *avail - tested, nl);
247
+ if (len >= 0)
248
+ len += tested;
226
249
  }
227
250
  return (len);
228
251
  }
@@ -238,6 +261,7 @@ uudecode_bidder_bid(struct archive_read_filter_bidder *self,
238
261
  ssize_t len, nl;
239
262
  int l;
240
263
  int firstline;
264
+ size_t nbytes_read;
241
265
 
242
266
  (void)self; /* UNUSED */
243
267
 
@@ -247,13 +271,14 @@ uudecode_bidder_bid(struct archive_read_filter_bidder *self,
247
271
 
248
272
  firstline = 20;
249
273
  ravail = avail;
274
+ nbytes_read = avail;
250
275
  for (;;) {
251
- len = bid_get_line(filter, &b, &avail, &ravail, &nl);
276
+ len = bid_get_line(filter, &b, &avail, &ravail, &nl, &nbytes_read);
252
277
  if (len < 0 || nl == 0)
253
- return (0);/* Binary data. */
254
- if (memcmp(b, "begin ", 6) == 0 && len - nl >= 11)
278
+ return (0); /* No match found. */
279
+ if (len - nl >= 11 && memcmp(b, "begin ", 6) == 0)
255
280
  l = 6;
256
- else if (memcmp(b, "begin-base64 ", 13) == 0 && len - nl >= 18)
281
+ else if (len -nl >= 18 && memcmp(b, "begin-base64 ", 13) == 0)
257
282
  l = 13;
258
283
  else
259
284
  l = 0;
@@ -268,15 +293,20 @@ uudecode_bidder_bid(struct archive_read_filter_bidder *self,
268
293
  if (l)
269
294
  break;
270
295
  firstline = 0;
296
+
297
+ /* Do not read more than UUENCODE_BID_MAX_READ bytes */
298
+ if (nbytes_read >= UUENCODE_BID_MAX_READ)
299
+ return (0);
271
300
  }
272
301
  if (!avail)
273
302
  return (0);
274
- len = bid_get_line(filter, &b, &avail, &ravail, &nl);
303
+ len = bid_get_line(filter, &b, &avail, &ravail, &nl, &nbytes_read);
275
304
  if (len < 0 || nl == 0)
276
305
  return (0);/* There are non-ascii characters. */
277
306
  avail -= len;
278
307
 
279
308
  if (l == 6) {
309
+ /* "begin " */
280
310
  if (!uuchar[*b])
281
311
  return (0);
282
312
  /* Get a length of decoded bytes. */
@@ -284,30 +314,14 @@ uudecode_bidder_bid(struct archive_read_filter_bidder *self,
284
314
  if (l > 45)
285
315
  /* Normally, maximum length is 45(character 'M'). */
286
316
  return (0);
287
- while (l && len-nl > 0) {
288
- if (l > 0) {
289
- if (!uuchar[*b++])
290
- return (0);
291
- if (!uuchar[*b++])
292
- return (0);
293
- len -= 2;
294
- --l;
295
- }
296
- if (l > 0) {
297
- if (!uuchar[*b++])
298
- return (0);
299
- --len;
300
- --l;
301
- }
302
- if (l > 0) {
303
- if (!uuchar[*b++])
304
- return (0);
305
- --len;
306
- --l;
307
- }
317
+ if (l > len - nl)
318
+ return (0); /* Line too short. */
319
+ while (l) {
320
+ if (!uuchar[*b++])
321
+ return (0);
322
+ --len;
323
+ --l;
308
324
  }
309
- if (len-nl < 0)
310
- return (0);
311
325
  if (len-nl == 1 &&
312
326
  (uuchar[*b] || /* Check sum. */
313
327
  (*b >= 'a' && *b <= 'z'))) {/* Padding data(MINIX). */
@@ -317,8 +331,8 @@ uudecode_bidder_bid(struct archive_read_filter_bidder *self,
317
331
  b += nl;
318
332
  if (avail && uuchar[*b])
319
333
  return (firstline+30);
320
- }
321
- if (l == 13) {
334
+ } else if (l == 13) {
335
+ /* "begin-base64 " */
322
336
  while (len-nl > 0) {
323
337
  if (!base64[*b++])
324
338
  return (0);
@@ -337,6 +351,12 @@ uudecode_bidder_bid(struct archive_read_filter_bidder *self,
337
351
  return (0);
338
352
  }
339
353
 
354
+ static const struct archive_read_filter_vtable
355
+ uudecode_reader_vtable = {
356
+ .read = uudecode_filter_read,
357
+ .close = uudecode_filter_close,
358
+ };
359
+
340
360
  static int
341
361
  uudecode_bidder_init(struct archive_read_filter *self)
342
362
  {
@@ -344,11 +364,8 @@ uudecode_bidder_init(struct archive_read_filter *self)
344
364
  void *out_buff;
345
365
  void *in_buff;
346
366
 
347
- self->code = ARCHIVE_COMPRESSION_UU;
367
+ self->code = ARCHIVE_FILTER_UU;
348
368
  self->name = "uu";
349
- self->read = uudecode_filter_read;
350
- self->skip = NULL; /* not supported */
351
- self->close = uudecode_filter_close;
352
369
 
353
370
  uudecode = (struct uudecode *)calloc(sizeof(*uudecode), 1);
354
371
  out_buff = malloc(OUT_BUFF_SIZE);
@@ -368,6 +385,7 @@ uudecode_bidder_init(struct archive_read_filter *self)
368
385
  uudecode->in_allocated = IN_BUFF_SIZE;
369
386
  uudecode->out_buff = out_buff;
370
387
  uudecode->state = ST_FIND_HEAD;
388
+ self->vtable = &uudecode_reader_vtable;
371
389
 
372
390
  return (ARCHIVE_OK);
373
391
  }
@@ -381,19 +399,30 @@ ensure_in_buff_size(struct archive_read_filter *self,
381
399
  unsigned char *ptr;
382
400
  size_t newsize;
383
401
 
384
- newsize = uudecode->in_allocated << 1;
402
+ /*
403
+ * Calculate a new buffer size for in_buff.
404
+ * Increase its value until it has enough size we need.
405
+ */
406
+ newsize = uudecode->in_allocated;
407
+ do {
408
+ if (newsize < IN_BUFF_SIZE*32)
409
+ newsize <<= 1;
410
+ else
411
+ newsize += IN_BUFF_SIZE;
412
+ } while (size > newsize);
413
+ /* Allocate the new buffer. */
385
414
  ptr = malloc(newsize);
386
- if (ptr == NULL ||
387
- newsize < uudecode->in_allocated) {
415
+ if (ptr == NULL) {
388
416
  free(ptr);
389
417
  archive_set_error(&self->archive->archive,
390
418
  ENOMEM,
391
419
  "Can't allocate data for uudecode");
392
420
  return (ARCHIVE_FATAL);
393
421
  }
422
+ /* Move the remaining data in in_buff into the new buffer. */
394
423
  if (uudecode->in_cnt)
395
- memmove(ptr, uudecode->in_buff,
396
- uudecode->in_cnt);
424
+ memmove(ptr, uudecode->in_buff, uudecode->in_cnt);
425
+ /* Replace in_buff with the new buffer. */
397
426
  free(uudecode->in_buff);
398
427
  uudecode->in_buff = ptr;
399
428
  uudecode->in_allocated = newsize;
@@ -426,6 +455,10 @@ read_more:
426
455
  total = 0;
427
456
  out = uudecode->out_buff;
428
457
  ravail = avail_in;
458
+ if (uudecode->state == ST_IGNORE) {
459
+ used = avail_in;
460
+ goto finish;
461
+ }
429
462
  if (uudecode->in_cnt) {
430
463
  /*
431
464
  * If there is remaining data which is saved by
@@ -441,19 +474,32 @@ read_more:
441
474
  uudecode->in_cnt = 0;
442
475
  }
443
476
  for (;used < avail_in; d += llen, used += llen) {
444
- int l, body;
477
+ int64_t l, body;
445
478
 
446
479
  b = d;
447
480
  len = get_line(b, avail_in - used, &nl);
448
481
  if (len < 0) {
449
482
  /* Non-ascii character is found. */
483
+ if (uudecode->state == ST_FIND_HEAD &&
484
+ (uudecode->total > 0 || total > 0)) {
485
+ uudecode->state = ST_IGNORE;
486
+ used = avail_in;
487
+ goto finish;
488
+ }
450
489
  archive_set_error(&self->archive->archive,
451
490
  ARCHIVE_ERRNO_MISC,
452
491
  "Insufficient compressed data");
453
492
  return (ARCHIVE_FATAL);
454
493
  }
455
494
  llen = len;
456
- if (nl == 0) {
495
+ if ((nl == 0) && (uudecode->state != ST_UUEND)) {
496
+ if (total == 0 && ravail <= 0) {
497
+ /* There is nothing more to read, fail */
498
+ archive_set_error(&self->archive->archive,
499
+ ARCHIVE_ERRNO_FILE_FORMAT,
500
+ "Missing format data");
501
+ return (ARCHIVE_FATAL);
502
+ }
457
503
  /*
458
504
  * Save remaining data which does not contain
459
505
  * NL('\n','\r').
@@ -463,7 +509,7 @@ read_more:
463
509
  return (ARCHIVE_FATAL);
464
510
  if (uudecode->in_buff != b)
465
511
  memmove(uudecode->in_buff, b, len);
466
- uudecode->in_cnt = len;
512
+ uudecode->in_cnt = (int)len;
467
513
  if (total == 0) {
468
514
  /* Do not return 0; it means end-of-file.
469
515
  * We should try to read bytes more. */
@@ -471,16 +517,22 @@ read_more:
471
517
  self->upstream, ravail);
472
518
  goto read_more;
473
519
  }
520
+ used += len;
474
521
  break;
475
522
  }
476
- if (total + len * 2 > OUT_BUFF_SIZE)
477
- break;
478
523
  switch (uudecode->state) {
479
524
  default:
480
525
  case ST_FIND_HEAD:
481
- if (len - nl > 13 && memcmp(b, "begin ", 6) == 0)
526
+ /* Do not read more than UUENCODE_BID_MAX_READ bytes */
527
+ if (total + len >= UUENCODE_BID_MAX_READ) {
528
+ archive_set_error(&self->archive->archive,
529
+ ARCHIVE_ERRNO_FILE_FORMAT,
530
+ "Invalid format data");
531
+ return (ARCHIVE_FATAL);
532
+ }
533
+ if (len - nl >= 11 && memcmp(b, "begin ", 6) == 0)
482
534
  l = 6;
483
- else if (len - nl > 18 &&
535
+ else if (len - nl >= 18 &&
484
536
  memcmp(b, "begin-base64 ", 13) == 0)
485
537
  l = 13;
486
538
  else
@@ -495,6 +547,8 @@ read_more:
495
547
  }
496
548
  break;
497
549
  case ST_READ_UU:
550
+ if (total + len * 2 > OUT_BUFF_SIZE)
551
+ goto finish;
498
552
  body = len - nl;
499
553
  if (!uuchar[*b] || body <= 0) {
500
554
  archive_set_error(&self->archive->archive,
@@ -502,7 +556,7 @@ read_more:
502
556
  "Insufficient compressed data");
503
557
  return (ARCHIVE_FATAL);
504
558
  }
505
- /* Get length of undecoded bytes of curent line. */
559
+ /* Get length of undecoded bytes of current line. */
506
560
  l = UUDECODE(*b++);
507
561
  body--;
508
562
  if (l > body) {
@@ -518,14 +572,13 @@ read_more:
518
572
  while (l > 0) {
519
573
  int n = 0;
520
574
 
521
- if (l > 0) {
522
- if (!uuchar[b[0]] || !uuchar[b[1]])
523
- break;
524
- n = UUDECODE(*b++) << 18;
525
- n |= UUDECODE(*b++) << 12;
526
- *out++ = n >> 16; total++;
527
- --l;
528
- }
575
+ if (!uuchar[b[0]] || !uuchar[b[1]])
576
+ break;
577
+ n = UUDECODE(*b++) << 18;
578
+ n |= UUDECODE(*b++) << 12;
579
+ *out++ = n >> 16; total++;
580
+ --l;
581
+
529
582
  if (l > 0) {
530
583
  if (!uuchar[b[0]])
531
584
  break;
@@ -559,6 +612,8 @@ read_more:
559
612
  }
560
613
  break;
561
614
  case ST_READ_BASE64:
615
+ if (total + len * 2 > OUT_BUFF_SIZE)
616
+ goto finish;
562
617
  l = len - nl;
563
618
  if (l >= 3 && b[0] == '=' && b[1] == '=' &&
564
619
  b[2] == '=') {
@@ -568,14 +623,13 @@ read_more:
568
623
  while (l > 0) {
569
624
  int n = 0;
570
625
 
571
- if (l > 0) {
572
- if (!base64[b[0]] || !base64[b[1]])
573
- break;
574
- n = base64num[*b++] << 18;
575
- n |= base64num[*b++] << 12;
576
- *out++ = n >> 16; total++;
577
- l -= 2;
578
- }
626
+ if (!base64[b[0]] || !base64[b[1]])
627
+ break;
628
+ n = base64num[*b++] << 18;
629
+ n |= base64num[*b++] << 12;
630
+ *out++ = n >> 16; total++;
631
+ l -= 2;
632
+
579
633
  if (l > 0) {
580
634
  if (*b == '=')
581
635
  break;
@@ -604,8 +658,10 @@ read_more:
604
658
  break;
605
659
  }
606
660
  }
607
-
608
- __archive_read_filter_consume(self->upstream, ravail);
661
+ finish:
662
+ if (ravail < avail_in)
663
+ used -= avail_in - ravail;
664
+ __archive_read_filter_consume(self->upstream, used);
609
665
 
610
666
  *buff = uudecode->out_buff;
611
667
  uudecode->total += total;