libmspack 0.10.1 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (391) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +37 -0
  3. data/.gitignore +2 -0
  4. data/Rakefile +1 -1
  5. data/ext/Rakefile +1 -1
  6. data/ext/libmspack/ChangeLog +145 -0
  7. data/ext/libmspack/INSTALL +3 -3
  8. data/ext/libmspack/Makefile.am +7 -4
  9. data/ext/libmspack/Makefile.in +265 -147
  10. data/ext/libmspack/README +3 -2
  11. data/ext/libmspack/aclocal.m4 +111 -113
  12. data/ext/libmspack/ar-lib +10 -9
  13. data/ext/libmspack/compile +9 -8
  14. data/ext/libmspack/config.guess +887 -613
  15. data/ext/libmspack/config.h.in +6 -9
  16. data/ext/libmspack/config.sub +1349 -1260
  17. data/ext/libmspack/configure +3035 -2490
  18. data/ext/libmspack/configure.ac +3 -3
  19. data/ext/libmspack/depcomp +4 -4
  20. data/ext/libmspack/install-sh +107 -74
  21. data/ext/libmspack/libmscabd.la +1 -1
  22. data/ext/libmspack/libmschmd.la +1 -1
  23. data/ext/libmspack/libmspack.la +1 -1
  24. data/ext/libmspack/ltmain.sh +156 -61
  25. data/ext/libmspack/m4/libtool.m4 +19 -12
  26. data/ext/libmspack/missing +8 -8
  27. data/ext/libmspack/mspack/cabd.c +21 -19
  28. data/ext/libmspack/mspack/chm.h +3 -2
  29. data/ext/libmspack/mspack/chmd.c +137 -57
  30. data/ext/libmspack/mspack/kwajd.c +29 -29
  31. data/ext/libmspack/mspack/lzx.h +0 -1
  32. data/ext/libmspack/mspack/lzxd.c +30 -154
  33. data/ext/libmspack/mspack/macros.h +64 -0
  34. data/ext/libmspack/mspack/mszipd.c +7 -18
  35. data/ext/libmspack/mspack/qtmd.c +3 -5
  36. data/ext/libmspack/mspack/readbits.h +14 -5
  37. data/ext/libmspack/mspack/readhuff.h +26 -21
  38. data/ext/libmspack/mspack/system.c +0 -5
  39. data/ext/libmspack/mspack/system.h +20 -67
  40. data/ext/libmspack/test-driver +16 -11
  41. data/ext/x86_64-linux/libmspack.so +0 -0
  42. data/ext/x86_64-windows/mspack.dll +0 -0
  43. data/lib/libmspack/version.rb +1 -1
  44. data/lib/libmspack.rb +1 -1
  45. data/libmspack.gemspec +1 -1
  46. metadata +7 -348
  47. data/.travis.yml +0 -5
  48. data/ext/i386-windows/libmspack.dll +0 -0
  49. data/ext/libmspack/doc/Doxyfile +0 -9
  50. data/ext/libmspack/doc/Makefile +0 -8
  51. data/ext/libmspack/doc/html/annotated.html +0 -104
  52. data/ext/libmspack/doc/html/bc_s.png +0 -0
  53. data/ext/libmspack/doc/html/bdwn.png +0 -0
  54. data/ext/libmspack/doc/html/classes.html +0 -85
  55. data/ext/libmspack/doc/html/closed.png +0 -0
  56. data/ext/libmspack/doc/html/dir_f4d90282fe865f947a460986b93b960a.html +0 -83
  57. data/ext/libmspack/doc/html/doc.png +0 -0
  58. data/ext/libmspack/doc/html/doxygen.css +0 -1596
  59. data/ext/libmspack/doc/html/doxygen.png +0 -0
  60. data/ext/libmspack/doc/html/dynsections.js +0 -97
  61. data/ext/libmspack/doc/html/files.html +0 -78
  62. data/ext/libmspack/doc/html/folderclosed.png +0 -0
  63. data/ext/libmspack/doc/html/folderopen.png +0 -0
  64. data/ext/libmspack/doc/html/functions.html +0 -454
  65. data/ext/libmspack/doc/html/functions_vars.html +0 -454
  66. data/ext/libmspack/doc/html/globals.html +0 -406
  67. data/ext/libmspack/doc/html/globals_defs.html +0 -316
  68. data/ext/libmspack/doc/html/globals_func.html +0 -161
  69. data/ext/libmspack/doc/html/graph_legend.html +0 -102
  70. data/ext/libmspack/doc/html/graph_legend.md5 +0 -1
  71. data/ext/libmspack/doc/html/graph_legend.png +0 -0
  72. data/ext/libmspack/doc/html/index.html +0 -167
  73. data/ext/libmspack/doc/html/jquery.js +0 -87
  74. data/ext/libmspack/doc/html/menu.js +0 -26
  75. data/ext/libmspack/doc/html/menudata.js +0 -56
  76. data/ext/libmspack/doc/html/mspack_8h.html +0 -2664
  77. data/ext/libmspack/doc/html/mspack_8h__incl.map +0 -2
  78. data/ext/libmspack/doc/html/mspack_8h__incl.md5 +0 -1
  79. data/ext/libmspack/doc/html/mspack_8h__incl.png +0 -0
  80. data/ext/libmspack/doc/html/mspack_8h_source.html +0 -238
  81. data/ext/libmspack/doc/html/nav_f.png +0 -0
  82. data/ext/libmspack/doc/html/nav_g.png +0 -0
  83. data/ext/libmspack/doc/html/nav_h.png +0 -0
  84. data/ext/libmspack/doc/html/open.png +0 -0
  85. data/ext/libmspack/doc/html/search/all_0.html +0 -26
  86. data/ext/libmspack/doc/html/search/all_0.js +0 -6
  87. data/ext/libmspack/doc/html/search/all_1.html +0 -26
  88. data/ext/libmspack/doc/html/search/all_1.js +0 -5
  89. data/ext/libmspack/doc/html/search/all_10.html +0 -26
  90. data/ext/libmspack/doc/html/search/all_10.js +0 -8
  91. data/ext/libmspack/doc/html/search/all_11.html +0 -26
  92. data/ext/libmspack/doc/html/search/all_11.js +0 -4
  93. data/ext/libmspack/doc/html/search/all_12.html +0 -26
  94. data/ext/libmspack/doc/html/search/all_12.js +0 -4
  95. data/ext/libmspack/doc/html/search/all_13.html +0 -26
  96. data/ext/libmspack/doc/html/search/all_13.js +0 -4
  97. data/ext/libmspack/doc/html/search/all_2.html +0 -26
  98. data/ext/libmspack/doc/html/search/all_2.js +0 -14
  99. data/ext/libmspack/doc/html/search/all_3.html +0 -26
  100. data/ext/libmspack/doc/html/search/all_3.js +0 -13
  101. data/ext/libmspack/doc/html/search/all_4.html +0 -26
  102. data/ext/libmspack/doc/html/search/all_4.js +0 -6
  103. data/ext/libmspack/doc/html/search/all_5.html +0 -26
  104. data/ext/libmspack/doc/html/search/all_5.js +0 -13
  105. data/ext/libmspack/doc/html/search/all_6.html +0 -26
  106. data/ext/libmspack/doc/html/search/all_6.js +0 -4
  107. data/ext/libmspack/doc/html/search/all_7.html +0 -26
  108. data/ext/libmspack/doc/html/search/all_7.js +0 -5
  109. data/ext/libmspack/doc/html/search/all_8.html +0 -26
  110. data/ext/libmspack/doc/html/search/all_8.js +0 -5
  111. data/ext/libmspack/doc/html/search/all_9.html +0 -26
  112. data/ext/libmspack/doc/html/search/all_9.js +0 -7
  113. data/ext/libmspack/doc/html/search/all_a.html +0 -26
  114. data/ext/libmspack/doc/html/search/all_a.js +0 -144
  115. data/ext/libmspack/doc/html/search/all_b.html +0 -26
  116. data/ext/libmspack/doc/html/search/all_b.js +0 -10
  117. data/ext/libmspack/doc/html/search/all_c.html +0 -26
  118. data/ext/libmspack/doc/html/search/all_c.js +0 -5
  119. data/ext/libmspack/doc/html/search/all_d.html +0 -26
  120. data/ext/libmspack/doc/html/search/all_d.js +0 -7
  121. data/ext/libmspack/doc/html/search/all_e.html +0 -26
  122. data/ext/libmspack/doc/html/search/all_e.js +0 -5
  123. data/ext/libmspack/doc/html/search/all_f.html +0 -26
  124. data/ext/libmspack/doc/html/search/all_f.js +0 -15
  125. data/ext/libmspack/doc/html/search/classes_0.html +0 -26
  126. data/ext/libmspack/doc/html/search/classes_0.js +0 -30
  127. data/ext/libmspack/doc/html/search/close.png +0 -0
  128. data/ext/libmspack/doc/html/search/defines_0.html +0 -26
  129. data/ext/libmspack/doc/html/search/defines_0.js +0 -84
  130. data/ext/libmspack/doc/html/search/files_0.html +0 -26
  131. data/ext/libmspack/doc/html/search/files_0.js +0 -4
  132. data/ext/libmspack/doc/html/search/functions_0.html +0 -26
  133. data/ext/libmspack/doc/html/search/functions_0.js +0 -33
  134. data/ext/libmspack/doc/html/search/mag_sel.png +0 -0
  135. data/ext/libmspack/doc/html/search/nomatches.html +0 -12
  136. data/ext/libmspack/doc/html/search/search.css +0 -271
  137. data/ext/libmspack/doc/html/search/search.js +0 -791
  138. data/ext/libmspack/doc/html/search/search_l.png +0 -0
  139. data/ext/libmspack/doc/html/search/search_m.png +0 -0
  140. data/ext/libmspack/doc/html/search/search_r.png +0 -0
  141. data/ext/libmspack/doc/html/search/searchdata.js +0 -30
  142. data/ext/libmspack/doc/html/search/variables_0.html +0 -26
  143. data/ext/libmspack/doc/html/search/variables_0.js +0 -6
  144. data/ext/libmspack/doc/html/search/variables_1.html +0 -26
  145. data/ext/libmspack/doc/html/search/variables_1.js +0 -5
  146. data/ext/libmspack/doc/html/search/variables_10.html +0 -26
  147. data/ext/libmspack/doc/html/search/variables_10.js +0 -8
  148. data/ext/libmspack/doc/html/search/variables_11.html +0 -26
  149. data/ext/libmspack/doc/html/search/variables_11.js +0 -4
  150. data/ext/libmspack/doc/html/search/variables_12.html +0 -26
  151. data/ext/libmspack/doc/html/search/variables_12.js +0 -4
  152. data/ext/libmspack/doc/html/search/variables_13.html +0 -26
  153. data/ext/libmspack/doc/html/search/variables_13.js +0 -4
  154. data/ext/libmspack/doc/html/search/variables_2.html +0 -26
  155. data/ext/libmspack/doc/html/search/variables_2.js +0 -14
  156. data/ext/libmspack/doc/html/search/variables_3.html +0 -26
  157. data/ext/libmspack/doc/html/search/variables_3.js +0 -13
  158. data/ext/libmspack/doc/html/search/variables_4.html +0 -26
  159. data/ext/libmspack/doc/html/search/variables_4.js +0 -6
  160. data/ext/libmspack/doc/html/search/variables_5.html +0 -26
  161. data/ext/libmspack/doc/html/search/variables_5.js +0 -13
  162. data/ext/libmspack/doc/html/search/variables_6.html +0 -26
  163. data/ext/libmspack/doc/html/search/variables_6.js +0 -4
  164. data/ext/libmspack/doc/html/search/variables_7.html +0 -26
  165. data/ext/libmspack/doc/html/search/variables_7.js +0 -5
  166. data/ext/libmspack/doc/html/search/variables_8.html +0 -26
  167. data/ext/libmspack/doc/html/search/variables_8.js +0 -5
  168. data/ext/libmspack/doc/html/search/variables_9.html +0 -26
  169. data/ext/libmspack/doc/html/search/variables_9.js +0 -7
  170. data/ext/libmspack/doc/html/search/variables_a.html +0 -26
  171. data/ext/libmspack/doc/html/search/variables_a.js +0 -5
  172. data/ext/libmspack/doc/html/search/variables_b.html +0 -26
  173. data/ext/libmspack/doc/html/search/variables_b.js +0 -10
  174. data/ext/libmspack/doc/html/search/variables_c.html +0 -26
  175. data/ext/libmspack/doc/html/search/variables_c.js +0 -5
  176. data/ext/libmspack/doc/html/search/variables_d.html +0 -26
  177. data/ext/libmspack/doc/html/search/variables_d.js +0 -7
  178. data/ext/libmspack/doc/html/search/variables_e.html +0 -26
  179. data/ext/libmspack/doc/html/search/variables_e.js +0 -5
  180. data/ext/libmspack/doc/html/search/variables_f.html +0 -26
  181. data/ext/libmspack/doc/html/search/variables_f.js +0 -15
  182. data/ext/libmspack/doc/html/splitbar.png +0 -0
  183. data/ext/libmspack/doc/html/structmscab__compressor.html +0 -106
  184. data/ext/libmspack/doc/html/structmscab__decompressor.html +0 -361
  185. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.map +0 -5
  186. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.md5 +0 -1
  187. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.png +0 -0
  188. data/ext/libmspack/doc/html/structmscabd__cabinet.html +0 -418
  189. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.map +0 -4
  190. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.md5 +0 -1
  191. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.png +0 -0
  192. data/ext/libmspack/doc/html/structmscabd__file.html +0 -337
  193. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.map +0 -3
  194. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.md5 +0 -1
  195. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.png +0 -0
  196. data/ext/libmspack/doc/html/structmscabd__folder.html +0 -159
  197. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.map +0 -2
  198. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.md5 +0 -1
  199. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.png +0 -0
  200. data/ext/libmspack/doc/html/structmschm__compressor.html +0 -226
  201. data/ext/libmspack/doc/html/structmschm__decompressor.html +0 -299
  202. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.map +0 -7
  203. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.md5 +0 -1
  204. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.png +0 -0
  205. data/ext/libmspack/doc/html/structmschmc__file.html +0 -169
  206. data/ext/libmspack/doc/html/structmschmd__file.html +0 -198
  207. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.map +0 -6
  208. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.md5 +0 -1
  209. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.png +0 -0
  210. data/ext/libmspack/doc/html/structmschmd__header.html +0 -458
  211. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.map +0 -6
  212. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.md5 +0 -1
  213. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.png +0 -0
  214. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed.html +0 -198
  215. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.map +0 -6
  216. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.md5 +0 -1
  217. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.png +0 -0
  218. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed.html +0 -140
  219. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.map +0 -6
  220. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.md5 +0 -1
  221. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.png +0 -0
  222. data/ext/libmspack/doc/html/structmschmd__section.html +0 -142
  223. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.map +0 -6
  224. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.md5 +0 -1
  225. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.png +0 -0
  226. data/ext/libmspack/doc/html/structmshlp__compressor.html +0 -106
  227. data/ext/libmspack/doc/html/structmshlp__decompressor.html +0 -106
  228. data/ext/libmspack/doc/html/structmskwaj__compressor.html +0 -243
  229. data/ext/libmspack/doc/html/structmskwaj__decompressor.html +0 -245
  230. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.map +0 -3
  231. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.md5 +0 -1
  232. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.png +0 -0
  233. data/ext/libmspack/doc/html/structmskwajd__header.html +0 -225
  234. data/ext/libmspack/doc/html/structmslit__compressor.html +0 -106
  235. data/ext/libmspack/doc/html/structmslit__decompressor.html +0 -106
  236. data/ext/libmspack/doc/html/structmsoab__compressor.html +0 -151
  237. data/ext/libmspack/doc/html/structmsoab__decompressor.html +0 -184
  238. data/ext/libmspack/doc/html/structmspack__file.html +0 -107
  239. data/ext/libmspack/doc/html/structmspack__system.html +0 -404
  240. data/ext/libmspack/doc/html/structmspack__system__coll__graph.map +0 -3
  241. data/ext/libmspack/doc/html/structmspack__system__coll__graph.md5 +0 -1
  242. data/ext/libmspack/doc/html/structmspack__system__coll__graph.png +0 -0
  243. data/ext/libmspack/doc/html/structmsszdd__compressor.html +0 -186
  244. data/ext/libmspack/doc/html/structmsszdd__decompressor.html +0 -246
  245. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.map +0 -3
  246. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.md5 +0 -1
  247. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.png +0 -0
  248. data/ext/libmspack/doc/html/structmsszddd__header.html +0 -149
  249. data/ext/libmspack/doc/html/sync_off.png +0 -0
  250. data/ext/libmspack/doc/html/sync_on.png +0 -0
  251. data/ext/libmspack/doc/html/szdd_kwaj_format.html +0 -331
  252. data/ext/libmspack/doc/html/tab_a.png +0 -0
  253. data/ext/libmspack/doc/html/tab_b.png +0 -0
  254. data/ext/libmspack/doc/html/tab_h.png +0 -0
  255. data/ext/libmspack/doc/html/tab_s.png +0 -0
  256. data/ext/libmspack/doc/html/tabs.css +0 -1
  257. data/ext/libmspack/doc/szdd_kwaj_format.html +0 -331
  258. data/ext/libmspack/examples/cabd_memory.c +0 -179
  259. data/ext/libmspack/examples/cabrip.c +0 -85
  260. data/ext/libmspack/examples/chmextract.c +0 -121
  261. data/ext/libmspack/examples/msexpand.c +0 -48
  262. data/ext/libmspack/examples/multifh.c +0 -435
  263. data/ext/libmspack/examples/oabextract.c +0 -41
  264. data/ext/libmspack/test/cabd_md5.c +0 -161
  265. data/ext/libmspack/test/cabd_test.c +0 -468
  266. data/ext/libmspack/test/chmd_find.c +0 -95
  267. data/ext/libmspack/test/chmd_md5.c +0 -67
  268. data/ext/libmspack/test/chmd_order.c +0 -144
  269. data/ext/libmspack/test/chmd_test.c +0 -134
  270. data/ext/libmspack/test/chminfo.c +0 -285
  271. data/ext/libmspack/test/error.h +0 -22
  272. data/ext/libmspack/test/kwajd_test.c +0 -119
  273. data/ext/libmspack/test/md5.c +0 -450
  274. data/ext/libmspack/test/md5.h +0 -166
  275. data/ext/libmspack/test/md5_fh.h +0 -123
  276. data/ext/libmspack/test/test_files/cabd/1.pl +0 -84
  277. data/ext/libmspack/test/test_files/cabd/2.pl +0 -75
  278. data/ext/libmspack/test/test_files/cabd/bad_folderindex.cab +0 -0
  279. data/ext/libmspack/test/test_files/cabd/bad_nofiles.cab +0 -0
  280. data/ext/libmspack/test/test_files/cabd/bad_nofolders.cab +0 -0
  281. data/ext/libmspack/test/test_files/cabd/bad_signature.cab +0 -0
  282. data/ext/libmspack/test/test_files/cabd/cve-2010-2800-mszip-infinite-loop.cab +0 -0
  283. data/ext/libmspack/test/test_files/cabd/cve-2014-9556-qtm-infinite-loop.cab +0 -0
  284. data/ext/libmspack/test/test_files/cabd/cve-2014-9732-folders-segfault.cab +0 -0
  285. data/ext/libmspack/test/test_files/cabd/cve-2015-4470-mszip-over-read.cab +0 -0
  286. data/ext/libmspack/test/test_files/cabd/cve-2015-4471-lzx-under-read.cab +0 -0
  287. data/ext/libmspack/test/test_files/cabd/filename-read-violation-1.cab +0 -0
  288. data/ext/libmspack/test/test_files/cabd/filename-read-violation-2.cab +0 -0
  289. data/ext/libmspack/test/test_files/cabd/filename-read-violation-3.cab +0 -0
  290. data/ext/libmspack/test/test_files/cabd/filename-read-violation-4.cab +0 -0
  291. data/ext/libmspack/test/test_files/cabd/lzx-main-tree-no-lengths.cab +0 -0
  292. data/ext/libmspack/test/test_files/cabd/lzx-premature-matches.cab +0 -0
  293. data/ext/libmspack/test/test_files/cabd/mszip_lzx_qtm.cab +0 -0
  294. data/ext/libmspack/test/test_files/cabd/multi_basic_pt1.cab +0 -0
  295. data/ext/libmspack/test/test_files/cabd/multi_basic_pt2.cab +0 -0
  296. data/ext/libmspack/test/test_files/cabd/multi_basic_pt3.cab +0 -0
  297. data/ext/libmspack/test/test_files/cabd/multi_basic_pt4.cab +0 -0
  298. data/ext/libmspack/test/test_files/cabd/multi_basic_pt5.cab +0 -0
  299. data/ext/libmspack/test/test_files/cabd/normal_255c_filename.cab +0 -0
  300. data/ext/libmspack/test/test_files/cabd/normal_2files_1folder.cab +0 -0
  301. data/ext/libmspack/test/test_files/cabd/normal_2files_2folders.cab +0 -0
  302. data/ext/libmspack/test/test_files/cabd/partial_nodata.cab +0 -0
  303. data/ext/libmspack/test/test_files/cabd/partial_nofiles.cab +0 -0
  304. data/ext/libmspack/test/test_files/cabd/partial_nofolder.cab +0 -0
  305. data/ext/libmspack/test/test_files/cabd/partial_shortextheader.cab +0 -0
  306. data/ext/libmspack/test/test_files/cabd/partial_shortfile1.cab +0 -0
  307. data/ext/libmspack/test/test_files/cabd/partial_shortfile2.cab +0 -0
  308. data/ext/libmspack/test/test_files/cabd/partial_shortfolder.cab +0 -0
  309. data/ext/libmspack/test/test_files/cabd/partial_shortheader.cab +0 -0
  310. data/ext/libmspack/test/test_files/cabd/partial_str_nofname.cab +0 -0
  311. data/ext/libmspack/test/test_files/cabd/partial_str_noninfo.cab +0 -0
  312. data/ext/libmspack/test/test_files/cabd/partial_str_nonname.cab +0 -0
  313. data/ext/libmspack/test/test_files/cabd/partial_str_nopinfo.cab +0 -0
  314. data/ext/libmspack/test/test_files/cabd/partial_str_nopname.cab +0 -0
  315. data/ext/libmspack/test/test_files/cabd/partial_str_shortfname.cab +0 -0
  316. data/ext/libmspack/test/test_files/cabd/partial_str_shortninfo.cab +0 -0
  317. data/ext/libmspack/test/test_files/cabd/partial_str_shortnname.cab +0 -0
  318. data/ext/libmspack/test/test_files/cabd/partial_str_shortpinfo.cab +0 -0
  319. data/ext/libmspack/test/test_files/cabd/partial_str_shortpname.cab +0 -0
  320. data/ext/libmspack/test/test_files/cabd/qtm-max-size-block.cab +0 -0
  321. data/ext/libmspack/test/test_files/cabd/reserve_---.cab +0 -0
  322. data/ext/libmspack/test/test_files/cabd/reserve_--D.cab +0 -0
  323. data/ext/libmspack/test/test_files/cabd/reserve_-F-.cab +0 -0
  324. data/ext/libmspack/test/test_files/cabd/reserve_-FD.cab +0 -0
  325. data/ext/libmspack/test/test_files/cabd/reserve_H--.cab +0 -0
  326. data/ext/libmspack/test/test_files/cabd/reserve_H-D.cab +0 -0
  327. data/ext/libmspack/test/test_files/cabd/reserve_HF-.cab +0 -0
  328. data/ext/libmspack/test/test_files/cabd/reserve_HFD.cab +0 -0
  329. data/ext/libmspack/test/test_files/cabd/search_basic.cab +0 -0
  330. data/ext/libmspack/test/test_files/cabd/search_tricky1.cab +0 -0
  331. data/ext/libmspack/test/test_files/chmd/blank-filenames.chm +0 -0
  332. data/ext/libmspack/test/test_files/chmd/cve-2015-4467-reset-interval-zero.chm.xor +0 -0
  333. data/ext/libmspack/test/test_files/chmd/cve-2015-4468-namelen-bounds.chm +0 -0
  334. data/ext/libmspack/test/test_files/chmd/cve-2015-4469-namelen-bounds.chm +0 -0
  335. data/ext/libmspack/test/test_files/chmd/cve-2015-4472-namelen-bounds.chm +0 -0
  336. data/ext/libmspack/test/test_files/chmd/cve-2017-6419-lzx-negative-spaninfo.chm +0 -0
  337. data/ext/libmspack/test/test_files/chmd/short-system-filenames.chm +0 -0
  338. data/ext/libmspack/test/test_files/kwajd/f00.kwj +0 -0
  339. data/ext/libmspack/test/test_files/kwajd/f01.kwj +0 -0
  340. data/ext/libmspack/test/test_files/kwajd/f02.kwj +0 -0
  341. data/ext/libmspack/test/test_files/kwajd/f03.kwj +0 -0
  342. data/ext/libmspack/test/test_files/kwajd/f04.kwj +0 -0
  343. data/ext/libmspack/test/test_files/kwajd/f10.kwj +0 -0
  344. data/ext/libmspack/test/test_files/kwajd/f11.kwj +0 -0
  345. data/ext/libmspack/test/test_files/kwajd/f12.kwj +0 -0
  346. data/ext/libmspack/test/test_files/kwajd/f13.kwj +0 -0
  347. data/ext/libmspack/test/test_files/kwajd/f14.kwj +0 -0
  348. data/ext/libmspack/test/test_files/kwajd/f20.kwj +0 -0
  349. data/ext/libmspack/test/test_files/kwajd/f21.kwj +0 -0
  350. data/ext/libmspack/test/test_files/kwajd/f22.kwj +0 -0
  351. data/ext/libmspack/test/test_files/kwajd/f23.kwj +0 -0
  352. data/ext/libmspack/test/test_files/kwajd/f24.kwj +0 -0
  353. data/ext/libmspack/test/test_files/kwajd/f30.kwj +0 -0
  354. data/ext/libmspack/test/test_files/kwajd/f31.kwj +0 -0
  355. data/ext/libmspack/test/test_files/kwajd/f32.kwj +0 -0
  356. data/ext/libmspack/test/test_files/kwajd/f33.kwj +0 -0
  357. data/ext/libmspack/test/test_files/kwajd/f34.kwj +0 -0
  358. data/ext/libmspack/test/test_files/kwajd/f40.kwj +0 -0
  359. data/ext/libmspack/test/test_files/kwajd/f41.kwj +0 -0
  360. data/ext/libmspack/test/test_files/kwajd/f42.kwj +0 -0
  361. data/ext/libmspack/test/test_files/kwajd/f43.kwj +0 -0
  362. data/ext/libmspack/test/test_files/kwajd/f44.kwj +0 -0
  363. data/ext/libmspack/test/test_files/kwajd/f50.kwj +0 -0
  364. data/ext/libmspack/test/test_files/kwajd/f51.kwj +0 -0
  365. data/ext/libmspack/test/test_files/kwajd/f52.kwj +0 -0
  366. data/ext/libmspack/test/test_files/kwajd/f53.kwj +0 -0
  367. data/ext/libmspack/test/test_files/kwajd/f54.kwj +0 -0
  368. data/ext/libmspack/test/test_files/kwajd/f60.kwj +0 -0
  369. data/ext/libmspack/test/test_files/kwajd/f61.kwj +0 -0
  370. data/ext/libmspack/test/test_files/kwajd/f62.kwj +0 -0
  371. data/ext/libmspack/test/test_files/kwajd/f63.kwj +0 -0
  372. data/ext/libmspack/test/test_files/kwajd/f64.kwj +0 -0
  373. data/ext/libmspack/test/test_files/kwajd/f70.kwj +0 -0
  374. data/ext/libmspack/test/test_files/kwajd/f71.kwj +0 -0
  375. data/ext/libmspack/test/test_files/kwajd/f72.kwj +0 -0
  376. data/ext/libmspack/test/test_files/kwajd/f73.kwj +0 -0
  377. data/ext/libmspack/test/test_files/kwajd/f74.kwj +0 -0
  378. data/ext/libmspack/test/test_files/kwajd/f80.kwj +0 -0
  379. data/ext/libmspack/test/test_files/kwajd/f81.kwj +0 -0
  380. data/ext/libmspack/test/test_files/kwajd/f82.kwj +0 -0
  381. data/ext/libmspack/test/test_files/kwajd/f83.kwj +0 -0
  382. data/ext/libmspack/test/test_files/kwajd/f84.kwj +0 -0
  383. data/ext/libmspack/test/test_files/kwajd/f90.kwj +0 -0
  384. data/ext/libmspack/test/test_files/kwajd/f91.kwj +0 -0
  385. data/ext/libmspack/test/test_files/kwajd/f92.kwj +0 -0
  386. data/ext/libmspack/test/test_files/kwajd/f93.kwj +0 -0
  387. data/ext/libmspack/test/test_files/kwajd/f94.kwj +0 -0
  388. data/ext/libmspack/test/test_files/kwajd/make.pl +0 -17
  389. data/ext/x86_64-linux/liblibmspack.so +0 -0
  390. data/ext/x86_64-windows/libmspack.dll +0 -0
  391. data/ext/x86_64-windows-msys/libmspack.dll +0 -0
@@ -1,95 +0,0 @@
1
- /* chmd_find: tests fast-find functionality
2
- */
3
- #ifdef HAVE_CONFIG_H
4
- #include <config.h>
5
- #endif
6
-
7
- #include <stdio.h>
8
- #include <stdlib.h>
9
- #include <string.h>
10
- #include <mspack.h>
11
-
12
- #include <error.h>
13
- #include <system.h>
14
-
15
- void find(struct mschm_decompressor *chmd, struct mschmd_header *chm,
16
- char *archive, char *filename, struct mschmd_file *compare)
17
- {
18
- struct mschmd_file result;
19
- if (chmd->fast_find(chmd, chm, filename, &result, sizeof(result))) {
20
- fprintf(stderr, "%s: find error on \"%s\": %s\n",
21
- archive, filename, ERROR(chmd));
22
- }
23
- else if (!result.section) {
24
- if (compare) {
25
- fprintf(stderr, "%s: file \"%s\" not found\n", archive, filename);
26
- }
27
- else {
28
- printf("%s: file \"%s\" not found\n", archive, filename);
29
- }
30
- }
31
- else {
32
- printf("%s\n", filename);
33
- printf(" section: %d\n", result.section->id);
34
- printf(" offset: %" LD "\n", result.offset);
35
- printf(" length: %" LD "\n", result.length);
36
- if (compare) {
37
- if (result.section->id != compare->section->id) {
38
- fprintf(stderr, "%s: found file \"%s\" section is wrong "
39
- "(%d vs %d)\n", archive, filename,
40
- result.section->id, compare->section->id);
41
- }
42
-
43
- if (result.offset != compare->offset) {
44
- fprintf(stderr, "%s: found file \"%s\" offset is wrong "
45
- "(%" LD " vs %" LD ")\n", archive, filename,
46
- result.offset, compare->offset);
47
- }
48
-
49
- if (result.length != compare->length) {
50
- fprintf(stderr, "%s: found file \"%s\" length is wrong "
51
- "(%" LD " vs %" LD ")\n", archive, filename,
52
- result.length, compare->length);
53
- }
54
- }
55
- }
56
- }
57
-
58
- int main(int argc, char *argv[]) {
59
- struct mschm_decompressor *chmd;
60
- struct mschmd_header *chm, *chm2;
61
- unsigned int i;
62
-
63
- if (argc < 2 || argc > 3) {
64
- printf("Usage: %s <file.chm> [filename to find]\n", argv[0]);
65
- return 1;
66
- }
67
-
68
- MSPACK_SYS_SELFTEST(i);
69
- if (i) return 0;
70
-
71
- if ((chmd = mspack_create_chm_decompressor(NULL))) {
72
- if ((chm = chmd->fast_open(chmd, argv[1]))) {
73
- if (argv[2]) {
74
- find(chmd, chm, argv[1], argv[2], NULL);
75
- }
76
- else {
77
- if ((chm2 = chmd->open(chmd, argv[1]))) {
78
- struct mschmd_file *file;
79
- for (file = chm2->files; file; file = file->next) {
80
- find(chmd, chm, argv[1], file->filename, file);
81
- }
82
- }
83
- else {
84
- printf("%s: can't open -- %s\n", argv[1], ERROR(chmd));
85
- }
86
- }
87
- chmd->close(chmd, chm);
88
- }
89
- else {
90
- printf("%s: can't open -- %s\n", argv[1], ERROR(chmd));
91
- }
92
- mspack_destroy_chm_decompressor(chmd);
93
- }
94
- return 0;
95
- }
@@ -1,67 +0,0 @@
1
- #ifdef HAVE_CONFIG_H
2
- #include <config.h>
3
- #endif
4
-
5
- #include <stdio.h>
6
- #include <stdlib.h>
7
- #include <string.h>
8
- #include <mspack.h>
9
-
10
- #include <md5_fh.h>
11
- #include <error.h>
12
-
13
- static int sortfunc(const void *a, const void *b) {
14
- off_t diff =
15
- ((* ((struct mschmd_file **) a))->offset) -
16
- ((* ((struct mschmd_file **) b))->offset);
17
- return (diff < 0) ? -1 : ((diff > 0) ? 1 : 0);
18
- }
19
-
20
- int main(int argc, char *argv[]) {
21
- struct mschm_decompressor *chmd;
22
- struct mschmd_header *chm;
23
- struct mschmd_file *file, **f;
24
- unsigned int numf, i;
25
- int err;
26
-
27
- setbuf(stdout, NULL);
28
- setbuf(stderr, NULL);
29
-
30
- MSPACK_SYS_SELFTEST(err);
31
- if (err) return 0;
32
-
33
- if ((chmd = mspack_create_chm_decompressor(&read_files_write_md5))) {
34
- for (argv++; *argv; argv++) {
35
- printf("*** %s\n", *argv);
36
- if ((chm = chmd->open(chmd, *argv))) {
37
-
38
- /* extract in order of the offset into content section - faster */
39
- for (numf=0, file=chm->files; file; file = file->next) numf++;
40
- if ((f = (struct mschmd_file **) calloc(numf, sizeof(struct mschmd_file *)))) {
41
- for (i=0, file=chm->files; file; file = file->next) f[i++] = file;
42
- qsort(f, numf, sizeof(struct mschmd_file *), &sortfunc);
43
- for (i = 0; i < numf; i++) {
44
- if (chmd->extract(chmd, f[i], NULL)) {
45
- fprintf(stderr, "%s: extract error on \"%s\": %s\n",
46
- *argv, f[i]->filename, ERROR(chmd));
47
- }
48
- else {
49
- printf("%s %s\n", md5_string, f[i]->filename);
50
- }
51
- }
52
- free(f);
53
- }
54
-
55
- chmd->close(chmd, chm);
56
- }
57
- else {
58
- fprintf(stderr, "%s: can't open -- %s\n", *argv, ERROR(chmd));
59
- }
60
- }
61
- mspack_destroy_chm_decompressor(chmd);
62
- }
63
- else {
64
- fprintf(stderr, "%s: can't make CHM decompressor\n", *argv);
65
- }
66
- return 0;
67
- }
@@ -1,144 +0,0 @@
1
- /* chmd_order: test that extracting a CHM file in different ways works
2
- * and all give the same results:
3
- * - extracting files in the order they're listed (generally alphabetical)
4
- * - extracting files ordered by their content section offset
5
- * - extracting files using fast_find() to find them
6
- * - extracting files from two chms at the same time with one decompressor
7
- */
8
- #ifdef HAVE_CONFIG_H
9
- #include <config.h>
10
- #endif
11
-
12
- #include <stdio.h>
13
- #include <stdlib.h>
14
- #include <string.h>
15
- #include <mspack.h>
16
-
17
- #include <md5_fh.h>
18
- #include <error.h>
19
-
20
- struct my_file {
21
- struct mschmd_file *file;
22
- struct mschmd_file result;
23
- char ordered[32], sorted[32], fast_find[32], mixed[32];
24
- };
25
-
26
- static int sortfunc(const void *a, const void *b) {
27
- off_t diff =
28
- ((struct my_file *) a)->file->offset -
29
- ((struct my_file *) b)->file->offset;
30
- return (diff < 0) ? -1 : ((diff > 0) ? 1 : 0);
31
- }
32
-
33
- int main(int argc, char *argv[]) {
34
- struct mschm_decompressor *chmd;
35
- struct mschmd_header *chm, *chm2;
36
- struct mschmd_file *file;
37
- struct my_file *f;
38
- unsigned int N, i;
39
-
40
- MSPACK_SYS_SELFTEST(i);
41
- if (i) return 0;
42
-
43
- if ((chmd = mspack_create_chm_decompressor(&read_files_write_md5))) {
44
- for (argv++; *argv; argv++) {
45
- printf("%s\n", *argv);
46
-
47
- if ((chm = chmd->open(chmd, *argv))) {
48
- if ((chm2 = chmd->fast_open(chmd, *argv))) {
49
-
50
- /* count the number of files, allocate a results structure */
51
- for (N=0, file = chm->files; file; file = file->next) N++;
52
- if ((f = (struct my_file *) calloc(N, sizeof(struct my_file)))) {
53
-
54
- /* fill out results structure while doing ordered extraction */
55
- for (i = 0, file = chm->files; file; file = file->next, i++) {
56
- printf("OX %s\n", file->filename);
57
- f[i].file = file;
58
- if (chmd->extract(chmd, file, NULL)) {
59
- fprintf(stderr, "%s: O extract error on \"%s\": %s\n",
60
- *argv, file->filename, ERROR(chmd));
61
- continue;
62
- }
63
- memcpy(&f[i].ordered[0], md5_string, 32);
64
- }
65
-
66
- /* sort the list into offset order */
67
- qsort(f, N, sizeof(struct my_file), &sortfunc);
68
-
69
- /* extract in offset order */
70
- for (i = 0; i < N; i++) {
71
- printf("SX %s\n", f[i].file->filename);
72
- if (chmd->extract(chmd, f[i].file, NULL)) {
73
- fprintf(stderr, "%s: S extract error on \"%s\": %s\n",
74
- *argv, f[i].file->filename, ERROR(chmd));
75
- continue;
76
- }
77
- memcpy(&f[i].sorted[0], md5_string, 32);
78
- }
79
-
80
- /* extract using fast_find */
81
- for (i = 0; i < N; i++) {
82
- printf("FX %s\n", f[i].file->filename);
83
-
84
- if (chmd->fast_find(chmd, chm2,
85
- f[i].file->filename,
86
- &f[i].result, sizeof(struct mschmd_file)))
87
- {
88
- fprintf(stderr, "%s: find error on \"%s\": %s\n",
89
- *argv, f[i].file->filename, ERROR(chmd));
90
- continue;
91
- }
92
- if (!f[i].result.section) {
93
- fprintf(stderr, "%s: can't find file \"%s\"\n",
94
- *argv, f[i].file->filename);
95
- continue;
96
- }
97
- if (chmd->extract(chmd, &f[i].result, NULL)) {
98
- fprintf(stderr, "%s: F extract error on \"%s\": %s\n",
99
- *argv, f[i].file->filename, ERROR(chmd));
100
- continue;
101
- }
102
- memcpy(&f[i].fast_find[0], md5_string, 32);
103
- }
104
-
105
- /* extract two chms at once */
106
- for (i = 0; i < N; i++) {
107
- printf("MX %s\n", f[i].file->filename);
108
- chmd->extract(chmd, f[i].file, NULL);
109
- if (chmd->extract(chmd, &f[i].result, NULL)) {
110
- fprintf(stderr, "%s: M extract error on \"%s\": %s\n",
111
- *argv, f[i].file->filename, ERROR(chmd));
112
- continue;
113
- }
114
- memcpy(&f[i].mixed[0], md5_string, 32);
115
- }
116
-
117
- /* check all the MD5 sums match */
118
- for (i = 0; i < N; i++) {
119
- if (memcmp(&f[i].ordered, &f[i].sorted, 32) ||
120
- memcmp(&f[i].ordered, &f[i].fast_find, 32) ||
121
- memcmp(&f[i].ordered, &f[i].mixed, 32))
122
- {
123
- fprintf(stderr, "%s: sums mismatch on %s "
124
- "(O=%32.32s,S=%32.32s,F=%32.32s,M=%32.32s)\n",
125
- *argv, f[i].file->filename,
126
- &f[i].ordered[0], &f[i].sorted[0],
127
- &f[i].fast_find[0], &f[i].mixed[0]);
128
- }
129
- }
130
-
131
- free(f);
132
- }
133
- chmd->close(chmd, chm2);
134
- }
135
- chmd->close(chmd, chm);
136
- }
137
- else {
138
- printf("%s: can't open -- %s\n", *argv, ERROR(chmd));
139
- }
140
- }
141
- mspack_destroy_chm_decompressor(chmd);
142
- }
143
- return 0;
144
- }
@@ -1,134 +0,0 @@
1
- /* CHM regression test suite */
2
-
3
- #ifdef HAVE_CONFIG_H
4
- #include <config.h>
5
- #endif
6
-
7
- #include <stdio.h>
8
- #include <stdlib.h>
9
- #include <string.h>
10
- #include <unistd.h>
11
-
12
- #include <mspack.h>
13
- #include <system.h>
14
-
15
- #define __tf3(x) #x
16
- #define __tf2(x) __tf3(x)
17
- #define TESTFILE(fname) (__tf2(TEST_FILES) "/" fname)
18
-
19
- unsigned int test_count = 0;
20
- #define TEST(x) do {\
21
- test_count++; \
22
- if (!(x)) {printf("%s:%d FAILED %s\n",__func__,__LINE__,#x);exit(1);} \
23
- } while (0)
24
-
25
- /* check opening bad files is rejected */
26
- void chmd_open_test_01() {
27
- struct mschm_decompressor *chmd;
28
- unsigned int i;
29
- const char *files[] = {
30
- TESTFILE("cve-2017-6419-lzx-negative-spaninfo.chm"),
31
- };
32
-
33
- TEST(chmd = mspack_create_chm_decompressor(NULL));
34
- for (i = 0; i < (sizeof(files)/sizeof(char *)); i++) {
35
- TEST(!chmd->open(chmd, files[i]));
36
- }
37
- mspack_destroy_chm_decompressor(chmd);
38
- }
39
-
40
- /* check no files are returned with blank filenames */
41
- void chmd_open_test_02() {
42
- struct mschm_decompressor *chmd;
43
- struct mschmd_header *chm;
44
- struct mschmd_file *f;
45
- unsigned int i;
46
- const char *files[] = {
47
- TESTFILE("blank-filenames.chm"),
48
- };
49
-
50
- TEST(chmd = mspack_create_chm_decompressor(NULL));
51
- for (i = 0; i < (sizeof(files)/sizeof(char *)); i++) {
52
- TEST(chm = chmd->open(chmd, files[i]));
53
- for (f = chm->files; f; f = f->next) {
54
- TEST(f->filename && f->filename[0]);
55
- }
56
- for (f = chm->sysfiles; f; f = f->next) {
57
- TEST(f->filename && f->filename[0]);
58
- }
59
- }
60
- mspack_destroy_chm_decompressor(chmd);
61
- }
62
-
63
-
64
- /* check searching bad files doesn't crash */
65
- void chmd_search_test_01() {
66
- struct mschm_decompressor *chmd;
67
- struct mschmd_header *chm1, *chm2;
68
- struct mschmd_file *f, result;
69
- unsigned int i;
70
- const char *files[] = {
71
- TESTFILE("cve-2015-4468-namelen-bounds.chm"),
72
- TESTFILE("cve-2015-4469-namelen-bounds.chm"),
73
- TESTFILE("cve-2015-4472-namelen-bounds.chm"),
74
- };
75
-
76
- TEST(chmd = mspack_create_chm_decompressor(NULL));
77
- for (i = 0; i < (sizeof(files)/sizeof(char *)); i++) {
78
- TEST(chm1 = chmd->open(chmd, files[i]));
79
- TEST(chm2 = chmd->fast_open(chmd, files[i]));
80
- for (f = chm1->files; f; f = f->next) {
81
- if (!chmd->fast_find(chmd, chm2, f->filename, &result, sizeof(result))) {
82
- TEST(f->offset == result.offset);
83
- TEST(f->length == result.length);
84
- }
85
- }
86
- chmd->close(chmd, chm2);
87
- chmd->close(chmd, chm1);
88
- }
89
- mspack_destroy_chm_decompressor(chmd);
90
- }
91
-
92
- #include <md5_fh.h>
93
- static int m_read_xor(struct mspack_file *file, void *buffer, int bytes) {
94
- int read = m_read(file, buffer, bytes);
95
- if (read > 0) {
96
- char *p = (char *) buffer, *end = &p[read];
97
- while (p < end) *p++ ^= 0xFF;
98
- }
99
- return read;
100
- }
101
-
102
- /* check extracting bad files doesn't crash */
103
- void chmd_extract_test_01() {
104
- struct mschm_decompressor *chmd;
105
- struct mschmd_header *chm;
106
- struct mschmd_file *f;
107
-
108
- /* create an mspack_system that XORs the files it reads */
109
- struct mspack_system xor_files = read_files_write_md5;
110
- xor_files.read = &m_read_xor;
111
-
112
- TEST(chmd = mspack_create_chm_decompressor(&xor_files));
113
- TEST(chm = chmd->open(chmd, TESTFILE("cve-2015-4467-reset-interval-zero.chm.xor")));
114
- for (f = chm->files; f; f = f->next) {
115
- chmd->extract(chmd, f, NULL);
116
- }
117
- chmd->close(chmd, chm);
118
- mspack_destroy_chm_decompressor(chmd);
119
- }
120
-
121
- int main() {
122
- int selftest;
123
-
124
- MSPACK_SYS_SELFTEST(selftest);
125
- TEST(selftest == MSPACK_ERR_OK);
126
-
127
- chmd_open_test_01();
128
- chmd_open_test_02();
129
- chmd_search_test_01();
130
- chmd_extract_test_01();
131
-
132
- printf("ALL %d TESTS PASSED.\n", test_count);
133
- return 0;
134
- }