libmspack 0.10.1 → 0.10.1.2

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 (355) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +37 -0
  3. data/.gitignore +2 -0
  4. data/ext/Rakefile +1 -1
  5. data/ext/x86_64-linux/libmspack.so +0 -0
  6. data/ext/x86_64-windows/mspack.dll +0 -0
  7. data/lib/libmspack/version.rb +1 -1
  8. data/lib/libmspack.rb +1 -1
  9. data/libmspack.gemspec +1 -1
  10. metadata +6 -348
  11. data/.travis.yml +0 -5
  12. data/ext/i386-windows/libmspack.dll +0 -0
  13. data/ext/libmspack/doc/Doxyfile +0 -9
  14. data/ext/libmspack/doc/Makefile +0 -8
  15. data/ext/libmspack/doc/html/annotated.html +0 -104
  16. data/ext/libmspack/doc/html/bc_s.png +0 -0
  17. data/ext/libmspack/doc/html/bdwn.png +0 -0
  18. data/ext/libmspack/doc/html/classes.html +0 -85
  19. data/ext/libmspack/doc/html/closed.png +0 -0
  20. data/ext/libmspack/doc/html/dir_f4d90282fe865f947a460986b93b960a.html +0 -83
  21. data/ext/libmspack/doc/html/doc.png +0 -0
  22. data/ext/libmspack/doc/html/doxygen.css +0 -1596
  23. data/ext/libmspack/doc/html/doxygen.png +0 -0
  24. data/ext/libmspack/doc/html/dynsections.js +0 -97
  25. data/ext/libmspack/doc/html/files.html +0 -78
  26. data/ext/libmspack/doc/html/folderclosed.png +0 -0
  27. data/ext/libmspack/doc/html/folderopen.png +0 -0
  28. data/ext/libmspack/doc/html/functions.html +0 -454
  29. data/ext/libmspack/doc/html/functions_vars.html +0 -454
  30. data/ext/libmspack/doc/html/globals.html +0 -406
  31. data/ext/libmspack/doc/html/globals_defs.html +0 -316
  32. data/ext/libmspack/doc/html/globals_func.html +0 -161
  33. data/ext/libmspack/doc/html/graph_legend.html +0 -102
  34. data/ext/libmspack/doc/html/graph_legend.md5 +0 -1
  35. data/ext/libmspack/doc/html/graph_legend.png +0 -0
  36. data/ext/libmspack/doc/html/index.html +0 -167
  37. data/ext/libmspack/doc/html/jquery.js +0 -87
  38. data/ext/libmspack/doc/html/menu.js +0 -26
  39. data/ext/libmspack/doc/html/menudata.js +0 -56
  40. data/ext/libmspack/doc/html/mspack_8h.html +0 -2664
  41. data/ext/libmspack/doc/html/mspack_8h__incl.map +0 -2
  42. data/ext/libmspack/doc/html/mspack_8h__incl.md5 +0 -1
  43. data/ext/libmspack/doc/html/mspack_8h__incl.png +0 -0
  44. data/ext/libmspack/doc/html/mspack_8h_source.html +0 -238
  45. data/ext/libmspack/doc/html/nav_f.png +0 -0
  46. data/ext/libmspack/doc/html/nav_g.png +0 -0
  47. data/ext/libmspack/doc/html/nav_h.png +0 -0
  48. data/ext/libmspack/doc/html/open.png +0 -0
  49. data/ext/libmspack/doc/html/search/all_0.html +0 -26
  50. data/ext/libmspack/doc/html/search/all_0.js +0 -6
  51. data/ext/libmspack/doc/html/search/all_1.html +0 -26
  52. data/ext/libmspack/doc/html/search/all_1.js +0 -5
  53. data/ext/libmspack/doc/html/search/all_10.html +0 -26
  54. data/ext/libmspack/doc/html/search/all_10.js +0 -8
  55. data/ext/libmspack/doc/html/search/all_11.html +0 -26
  56. data/ext/libmspack/doc/html/search/all_11.js +0 -4
  57. data/ext/libmspack/doc/html/search/all_12.html +0 -26
  58. data/ext/libmspack/doc/html/search/all_12.js +0 -4
  59. data/ext/libmspack/doc/html/search/all_13.html +0 -26
  60. data/ext/libmspack/doc/html/search/all_13.js +0 -4
  61. data/ext/libmspack/doc/html/search/all_2.html +0 -26
  62. data/ext/libmspack/doc/html/search/all_2.js +0 -14
  63. data/ext/libmspack/doc/html/search/all_3.html +0 -26
  64. data/ext/libmspack/doc/html/search/all_3.js +0 -13
  65. data/ext/libmspack/doc/html/search/all_4.html +0 -26
  66. data/ext/libmspack/doc/html/search/all_4.js +0 -6
  67. data/ext/libmspack/doc/html/search/all_5.html +0 -26
  68. data/ext/libmspack/doc/html/search/all_5.js +0 -13
  69. data/ext/libmspack/doc/html/search/all_6.html +0 -26
  70. data/ext/libmspack/doc/html/search/all_6.js +0 -4
  71. data/ext/libmspack/doc/html/search/all_7.html +0 -26
  72. data/ext/libmspack/doc/html/search/all_7.js +0 -5
  73. data/ext/libmspack/doc/html/search/all_8.html +0 -26
  74. data/ext/libmspack/doc/html/search/all_8.js +0 -5
  75. data/ext/libmspack/doc/html/search/all_9.html +0 -26
  76. data/ext/libmspack/doc/html/search/all_9.js +0 -7
  77. data/ext/libmspack/doc/html/search/all_a.html +0 -26
  78. data/ext/libmspack/doc/html/search/all_a.js +0 -144
  79. data/ext/libmspack/doc/html/search/all_b.html +0 -26
  80. data/ext/libmspack/doc/html/search/all_b.js +0 -10
  81. data/ext/libmspack/doc/html/search/all_c.html +0 -26
  82. data/ext/libmspack/doc/html/search/all_c.js +0 -5
  83. data/ext/libmspack/doc/html/search/all_d.html +0 -26
  84. data/ext/libmspack/doc/html/search/all_d.js +0 -7
  85. data/ext/libmspack/doc/html/search/all_e.html +0 -26
  86. data/ext/libmspack/doc/html/search/all_e.js +0 -5
  87. data/ext/libmspack/doc/html/search/all_f.html +0 -26
  88. data/ext/libmspack/doc/html/search/all_f.js +0 -15
  89. data/ext/libmspack/doc/html/search/classes_0.html +0 -26
  90. data/ext/libmspack/doc/html/search/classes_0.js +0 -30
  91. data/ext/libmspack/doc/html/search/close.png +0 -0
  92. data/ext/libmspack/doc/html/search/defines_0.html +0 -26
  93. data/ext/libmspack/doc/html/search/defines_0.js +0 -84
  94. data/ext/libmspack/doc/html/search/files_0.html +0 -26
  95. data/ext/libmspack/doc/html/search/files_0.js +0 -4
  96. data/ext/libmspack/doc/html/search/functions_0.html +0 -26
  97. data/ext/libmspack/doc/html/search/functions_0.js +0 -33
  98. data/ext/libmspack/doc/html/search/mag_sel.png +0 -0
  99. data/ext/libmspack/doc/html/search/nomatches.html +0 -12
  100. data/ext/libmspack/doc/html/search/search.css +0 -271
  101. data/ext/libmspack/doc/html/search/search.js +0 -791
  102. data/ext/libmspack/doc/html/search/search_l.png +0 -0
  103. data/ext/libmspack/doc/html/search/search_m.png +0 -0
  104. data/ext/libmspack/doc/html/search/search_r.png +0 -0
  105. data/ext/libmspack/doc/html/search/searchdata.js +0 -30
  106. data/ext/libmspack/doc/html/search/variables_0.html +0 -26
  107. data/ext/libmspack/doc/html/search/variables_0.js +0 -6
  108. data/ext/libmspack/doc/html/search/variables_1.html +0 -26
  109. data/ext/libmspack/doc/html/search/variables_1.js +0 -5
  110. data/ext/libmspack/doc/html/search/variables_10.html +0 -26
  111. data/ext/libmspack/doc/html/search/variables_10.js +0 -8
  112. data/ext/libmspack/doc/html/search/variables_11.html +0 -26
  113. data/ext/libmspack/doc/html/search/variables_11.js +0 -4
  114. data/ext/libmspack/doc/html/search/variables_12.html +0 -26
  115. data/ext/libmspack/doc/html/search/variables_12.js +0 -4
  116. data/ext/libmspack/doc/html/search/variables_13.html +0 -26
  117. data/ext/libmspack/doc/html/search/variables_13.js +0 -4
  118. data/ext/libmspack/doc/html/search/variables_2.html +0 -26
  119. data/ext/libmspack/doc/html/search/variables_2.js +0 -14
  120. data/ext/libmspack/doc/html/search/variables_3.html +0 -26
  121. data/ext/libmspack/doc/html/search/variables_3.js +0 -13
  122. data/ext/libmspack/doc/html/search/variables_4.html +0 -26
  123. data/ext/libmspack/doc/html/search/variables_4.js +0 -6
  124. data/ext/libmspack/doc/html/search/variables_5.html +0 -26
  125. data/ext/libmspack/doc/html/search/variables_5.js +0 -13
  126. data/ext/libmspack/doc/html/search/variables_6.html +0 -26
  127. data/ext/libmspack/doc/html/search/variables_6.js +0 -4
  128. data/ext/libmspack/doc/html/search/variables_7.html +0 -26
  129. data/ext/libmspack/doc/html/search/variables_7.js +0 -5
  130. data/ext/libmspack/doc/html/search/variables_8.html +0 -26
  131. data/ext/libmspack/doc/html/search/variables_8.js +0 -5
  132. data/ext/libmspack/doc/html/search/variables_9.html +0 -26
  133. data/ext/libmspack/doc/html/search/variables_9.js +0 -7
  134. data/ext/libmspack/doc/html/search/variables_a.html +0 -26
  135. data/ext/libmspack/doc/html/search/variables_a.js +0 -5
  136. data/ext/libmspack/doc/html/search/variables_b.html +0 -26
  137. data/ext/libmspack/doc/html/search/variables_b.js +0 -10
  138. data/ext/libmspack/doc/html/search/variables_c.html +0 -26
  139. data/ext/libmspack/doc/html/search/variables_c.js +0 -5
  140. data/ext/libmspack/doc/html/search/variables_d.html +0 -26
  141. data/ext/libmspack/doc/html/search/variables_d.js +0 -7
  142. data/ext/libmspack/doc/html/search/variables_e.html +0 -26
  143. data/ext/libmspack/doc/html/search/variables_e.js +0 -5
  144. data/ext/libmspack/doc/html/search/variables_f.html +0 -26
  145. data/ext/libmspack/doc/html/search/variables_f.js +0 -15
  146. data/ext/libmspack/doc/html/splitbar.png +0 -0
  147. data/ext/libmspack/doc/html/structmscab__compressor.html +0 -106
  148. data/ext/libmspack/doc/html/structmscab__decompressor.html +0 -361
  149. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.map +0 -5
  150. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.md5 +0 -1
  151. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.png +0 -0
  152. data/ext/libmspack/doc/html/structmscabd__cabinet.html +0 -418
  153. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.map +0 -4
  154. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.md5 +0 -1
  155. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.png +0 -0
  156. data/ext/libmspack/doc/html/structmscabd__file.html +0 -337
  157. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.map +0 -3
  158. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.md5 +0 -1
  159. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.png +0 -0
  160. data/ext/libmspack/doc/html/structmscabd__folder.html +0 -159
  161. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.map +0 -2
  162. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.md5 +0 -1
  163. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.png +0 -0
  164. data/ext/libmspack/doc/html/structmschm__compressor.html +0 -226
  165. data/ext/libmspack/doc/html/structmschm__decompressor.html +0 -299
  166. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.map +0 -7
  167. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.md5 +0 -1
  168. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.png +0 -0
  169. data/ext/libmspack/doc/html/structmschmc__file.html +0 -169
  170. data/ext/libmspack/doc/html/structmschmd__file.html +0 -198
  171. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.map +0 -6
  172. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.md5 +0 -1
  173. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.png +0 -0
  174. data/ext/libmspack/doc/html/structmschmd__header.html +0 -458
  175. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.map +0 -6
  176. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.md5 +0 -1
  177. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.png +0 -0
  178. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed.html +0 -198
  179. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.map +0 -6
  180. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.md5 +0 -1
  181. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.png +0 -0
  182. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed.html +0 -140
  183. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.map +0 -6
  184. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.md5 +0 -1
  185. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.png +0 -0
  186. data/ext/libmspack/doc/html/structmschmd__section.html +0 -142
  187. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.map +0 -6
  188. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.md5 +0 -1
  189. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.png +0 -0
  190. data/ext/libmspack/doc/html/structmshlp__compressor.html +0 -106
  191. data/ext/libmspack/doc/html/structmshlp__decompressor.html +0 -106
  192. data/ext/libmspack/doc/html/structmskwaj__compressor.html +0 -243
  193. data/ext/libmspack/doc/html/structmskwaj__decompressor.html +0 -245
  194. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.map +0 -3
  195. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.md5 +0 -1
  196. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.png +0 -0
  197. data/ext/libmspack/doc/html/structmskwajd__header.html +0 -225
  198. data/ext/libmspack/doc/html/structmslit__compressor.html +0 -106
  199. data/ext/libmspack/doc/html/structmslit__decompressor.html +0 -106
  200. data/ext/libmspack/doc/html/structmsoab__compressor.html +0 -151
  201. data/ext/libmspack/doc/html/structmsoab__decompressor.html +0 -184
  202. data/ext/libmspack/doc/html/structmspack__file.html +0 -107
  203. data/ext/libmspack/doc/html/structmspack__system.html +0 -404
  204. data/ext/libmspack/doc/html/structmspack__system__coll__graph.map +0 -3
  205. data/ext/libmspack/doc/html/structmspack__system__coll__graph.md5 +0 -1
  206. data/ext/libmspack/doc/html/structmspack__system__coll__graph.png +0 -0
  207. data/ext/libmspack/doc/html/structmsszdd__compressor.html +0 -186
  208. data/ext/libmspack/doc/html/structmsszdd__decompressor.html +0 -246
  209. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.map +0 -3
  210. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.md5 +0 -1
  211. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.png +0 -0
  212. data/ext/libmspack/doc/html/structmsszddd__header.html +0 -149
  213. data/ext/libmspack/doc/html/sync_off.png +0 -0
  214. data/ext/libmspack/doc/html/sync_on.png +0 -0
  215. data/ext/libmspack/doc/html/szdd_kwaj_format.html +0 -331
  216. data/ext/libmspack/doc/html/tab_a.png +0 -0
  217. data/ext/libmspack/doc/html/tab_b.png +0 -0
  218. data/ext/libmspack/doc/html/tab_h.png +0 -0
  219. data/ext/libmspack/doc/html/tab_s.png +0 -0
  220. data/ext/libmspack/doc/html/tabs.css +0 -1
  221. data/ext/libmspack/doc/szdd_kwaj_format.html +0 -331
  222. data/ext/libmspack/examples/cabd_memory.c +0 -179
  223. data/ext/libmspack/examples/cabrip.c +0 -85
  224. data/ext/libmspack/examples/chmextract.c +0 -121
  225. data/ext/libmspack/examples/msexpand.c +0 -48
  226. data/ext/libmspack/examples/multifh.c +0 -435
  227. data/ext/libmspack/examples/oabextract.c +0 -41
  228. data/ext/libmspack/test/cabd_md5.c +0 -161
  229. data/ext/libmspack/test/cabd_test.c +0 -468
  230. data/ext/libmspack/test/chmd_find.c +0 -95
  231. data/ext/libmspack/test/chmd_md5.c +0 -67
  232. data/ext/libmspack/test/chmd_order.c +0 -144
  233. data/ext/libmspack/test/chmd_test.c +0 -134
  234. data/ext/libmspack/test/chminfo.c +0 -285
  235. data/ext/libmspack/test/error.h +0 -22
  236. data/ext/libmspack/test/kwajd_test.c +0 -119
  237. data/ext/libmspack/test/md5.c +0 -450
  238. data/ext/libmspack/test/md5.h +0 -166
  239. data/ext/libmspack/test/md5_fh.h +0 -123
  240. data/ext/libmspack/test/test_files/cabd/1.pl +0 -84
  241. data/ext/libmspack/test/test_files/cabd/2.pl +0 -75
  242. data/ext/libmspack/test/test_files/cabd/bad_folderindex.cab +0 -0
  243. data/ext/libmspack/test/test_files/cabd/bad_nofiles.cab +0 -0
  244. data/ext/libmspack/test/test_files/cabd/bad_nofolders.cab +0 -0
  245. data/ext/libmspack/test/test_files/cabd/bad_signature.cab +0 -0
  246. data/ext/libmspack/test/test_files/cabd/cve-2010-2800-mszip-infinite-loop.cab +0 -0
  247. data/ext/libmspack/test/test_files/cabd/cve-2014-9556-qtm-infinite-loop.cab +0 -0
  248. data/ext/libmspack/test/test_files/cabd/cve-2014-9732-folders-segfault.cab +0 -0
  249. data/ext/libmspack/test/test_files/cabd/cve-2015-4470-mszip-over-read.cab +0 -0
  250. data/ext/libmspack/test/test_files/cabd/cve-2015-4471-lzx-under-read.cab +0 -0
  251. data/ext/libmspack/test/test_files/cabd/filename-read-violation-1.cab +0 -0
  252. data/ext/libmspack/test/test_files/cabd/filename-read-violation-2.cab +0 -0
  253. data/ext/libmspack/test/test_files/cabd/filename-read-violation-3.cab +0 -0
  254. data/ext/libmspack/test/test_files/cabd/filename-read-violation-4.cab +0 -0
  255. data/ext/libmspack/test/test_files/cabd/lzx-main-tree-no-lengths.cab +0 -0
  256. data/ext/libmspack/test/test_files/cabd/lzx-premature-matches.cab +0 -0
  257. data/ext/libmspack/test/test_files/cabd/mszip_lzx_qtm.cab +0 -0
  258. data/ext/libmspack/test/test_files/cabd/multi_basic_pt1.cab +0 -0
  259. data/ext/libmspack/test/test_files/cabd/multi_basic_pt2.cab +0 -0
  260. data/ext/libmspack/test/test_files/cabd/multi_basic_pt3.cab +0 -0
  261. data/ext/libmspack/test/test_files/cabd/multi_basic_pt4.cab +0 -0
  262. data/ext/libmspack/test/test_files/cabd/multi_basic_pt5.cab +0 -0
  263. data/ext/libmspack/test/test_files/cabd/normal_255c_filename.cab +0 -0
  264. data/ext/libmspack/test/test_files/cabd/normal_2files_1folder.cab +0 -0
  265. data/ext/libmspack/test/test_files/cabd/normal_2files_2folders.cab +0 -0
  266. data/ext/libmspack/test/test_files/cabd/partial_nodata.cab +0 -0
  267. data/ext/libmspack/test/test_files/cabd/partial_nofiles.cab +0 -0
  268. data/ext/libmspack/test/test_files/cabd/partial_nofolder.cab +0 -0
  269. data/ext/libmspack/test/test_files/cabd/partial_shortextheader.cab +0 -0
  270. data/ext/libmspack/test/test_files/cabd/partial_shortfile1.cab +0 -0
  271. data/ext/libmspack/test/test_files/cabd/partial_shortfile2.cab +0 -0
  272. data/ext/libmspack/test/test_files/cabd/partial_shortfolder.cab +0 -0
  273. data/ext/libmspack/test/test_files/cabd/partial_shortheader.cab +0 -0
  274. data/ext/libmspack/test/test_files/cabd/partial_str_nofname.cab +0 -0
  275. data/ext/libmspack/test/test_files/cabd/partial_str_noninfo.cab +0 -0
  276. data/ext/libmspack/test/test_files/cabd/partial_str_nonname.cab +0 -0
  277. data/ext/libmspack/test/test_files/cabd/partial_str_nopinfo.cab +0 -0
  278. data/ext/libmspack/test/test_files/cabd/partial_str_nopname.cab +0 -0
  279. data/ext/libmspack/test/test_files/cabd/partial_str_shortfname.cab +0 -0
  280. data/ext/libmspack/test/test_files/cabd/partial_str_shortninfo.cab +0 -0
  281. data/ext/libmspack/test/test_files/cabd/partial_str_shortnname.cab +0 -0
  282. data/ext/libmspack/test/test_files/cabd/partial_str_shortpinfo.cab +0 -0
  283. data/ext/libmspack/test/test_files/cabd/partial_str_shortpname.cab +0 -0
  284. data/ext/libmspack/test/test_files/cabd/qtm-max-size-block.cab +0 -0
  285. data/ext/libmspack/test/test_files/cabd/reserve_---.cab +0 -0
  286. data/ext/libmspack/test/test_files/cabd/reserve_--D.cab +0 -0
  287. data/ext/libmspack/test/test_files/cabd/reserve_-F-.cab +0 -0
  288. data/ext/libmspack/test/test_files/cabd/reserve_-FD.cab +0 -0
  289. data/ext/libmspack/test/test_files/cabd/reserve_H--.cab +0 -0
  290. data/ext/libmspack/test/test_files/cabd/reserve_H-D.cab +0 -0
  291. data/ext/libmspack/test/test_files/cabd/reserve_HF-.cab +0 -0
  292. data/ext/libmspack/test/test_files/cabd/reserve_HFD.cab +0 -0
  293. data/ext/libmspack/test/test_files/cabd/search_basic.cab +0 -0
  294. data/ext/libmspack/test/test_files/cabd/search_tricky1.cab +0 -0
  295. data/ext/libmspack/test/test_files/chmd/blank-filenames.chm +0 -0
  296. data/ext/libmspack/test/test_files/chmd/cve-2015-4467-reset-interval-zero.chm.xor +0 -0
  297. data/ext/libmspack/test/test_files/chmd/cve-2015-4468-namelen-bounds.chm +0 -0
  298. data/ext/libmspack/test/test_files/chmd/cve-2015-4469-namelen-bounds.chm +0 -0
  299. data/ext/libmspack/test/test_files/chmd/cve-2015-4472-namelen-bounds.chm +0 -0
  300. data/ext/libmspack/test/test_files/chmd/cve-2017-6419-lzx-negative-spaninfo.chm +0 -0
  301. data/ext/libmspack/test/test_files/chmd/short-system-filenames.chm +0 -0
  302. data/ext/libmspack/test/test_files/kwajd/f00.kwj +0 -0
  303. data/ext/libmspack/test/test_files/kwajd/f01.kwj +0 -0
  304. data/ext/libmspack/test/test_files/kwajd/f02.kwj +0 -0
  305. data/ext/libmspack/test/test_files/kwajd/f03.kwj +0 -0
  306. data/ext/libmspack/test/test_files/kwajd/f04.kwj +0 -0
  307. data/ext/libmspack/test/test_files/kwajd/f10.kwj +0 -0
  308. data/ext/libmspack/test/test_files/kwajd/f11.kwj +0 -0
  309. data/ext/libmspack/test/test_files/kwajd/f12.kwj +0 -0
  310. data/ext/libmspack/test/test_files/kwajd/f13.kwj +0 -0
  311. data/ext/libmspack/test/test_files/kwajd/f14.kwj +0 -0
  312. data/ext/libmspack/test/test_files/kwajd/f20.kwj +0 -0
  313. data/ext/libmspack/test/test_files/kwajd/f21.kwj +0 -0
  314. data/ext/libmspack/test/test_files/kwajd/f22.kwj +0 -0
  315. data/ext/libmspack/test/test_files/kwajd/f23.kwj +0 -0
  316. data/ext/libmspack/test/test_files/kwajd/f24.kwj +0 -0
  317. data/ext/libmspack/test/test_files/kwajd/f30.kwj +0 -0
  318. data/ext/libmspack/test/test_files/kwajd/f31.kwj +0 -0
  319. data/ext/libmspack/test/test_files/kwajd/f32.kwj +0 -0
  320. data/ext/libmspack/test/test_files/kwajd/f33.kwj +0 -0
  321. data/ext/libmspack/test/test_files/kwajd/f34.kwj +0 -0
  322. data/ext/libmspack/test/test_files/kwajd/f40.kwj +0 -0
  323. data/ext/libmspack/test/test_files/kwajd/f41.kwj +0 -0
  324. data/ext/libmspack/test/test_files/kwajd/f42.kwj +0 -0
  325. data/ext/libmspack/test/test_files/kwajd/f43.kwj +0 -0
  326. data/ext/libmspack/test/test_files/kwajd/f44.kwj +0 -0
  327. data/ext/libmspack/test/test_files/kwajd/f50.kwj +0 -0
  328. data/ext/libmspack/test/test_files/kwajd/f51.kwj +0 -0
  329. data/ext/libmspack/test/test_files/kwajd/f52.kwj +0 -0
  330. data/ext/libmspack/test/test_files/kwajd/f53.kwj +0 -0
  331. data/ext/libmspack/test/test_files/kwajd/f54.kwj +0 -0
  332. data/ext/libmspack/test/test_files/kwajd/f60.kwj +0 -0
  333. data/ext/libmspack/test/test_files/kwajd/f61.kwj +0 -0
  334. data/ext/libmspack/test/test_files/kwajd/f62.kwj +0 -0
  335. data/ext/libmspack/test/test_files/kwajd/f63.kwj +0 -0
  336. data/ext/libmspack/test/test_files/kwajd/f64.kwj +0 -0
  337. data/ext/libmspack/test/test_files/kwajd/f70.kwj +0 -0
  338. data/ext/libmspack/test/test_files/kwajd/f71.kwj +0 -0
  339. data/ext/libmspack/test/test_files/kwajd/f72.kwj +0 -0
  340. data/ext/libmspack/test/test_files/kwajd/f73.kwj +0 -0
  341. data/ext/libmspack/test/test_files/kwajd/f74.kwj +0 -0
  342. data/ext/libmspack/test/test_files/kwajd/f80.kwj +0 -0
  343. data/ext/libmspack/test/test_files/kwajd/f81.kwj +0 -0
  344. data/ext/libmspack/test/test_files/kwajd/f82.kwj +0 -0
  345. data/ext/libmspack/test/test_files/kwajd/f83.kwj +0 -0
  346. data/ext/libmspack/test/test_files/kwajd/f84.kwj +0 -0
  347. data/ext/libmspack/test/test_files/kwajd/f90.kwj +0 -0
  348. data/ext/libmspack/test/test_files/kwajd/f91.kwj +0 -0
  349. data/ext/libmspack/test/test_files/kwajd/f92.kwj +0 -0
  350. data/ext/libmspack/test/test_files/kwajd/f93.kwj +0 -0
  351. data/ext/libmspack/test/test_files/kwajd/f94.kwj +0 -0
  352. data/ext/libmspack/test/test_files/kwajd/make.pl +0 -17
  353. data/ext/x86_64-linux/liblibmspack.so +0 -0
  354. data/ext/x86_64-windows/libmspack.dll +0 -0
  355. data/ext/x86_64-windows-msys/libmspack.dll +0 -0
@@ -1,123 +0,0 @@
1
- /* an mspack_system implementation which reads one or more files, and
2
- * only writes to one file; the file is not actually written to, but
3
- * an MD5 sum is computed and is available once the written-to file is
4
- * closed. You can use anything for the written-to filename, NULL is
5
- * probably the most obvious. The code is not multithreadable.
6
- */
7
-
8
- #include <md5.h>
9
- #include <stdio.h>
10
- #include <stdarg.h>
11
-
12
- struct md5_ctx md5_context;
13
- char md5_string[33];
14
-
15
- struct mspack_file_p {
16
- FILE *fh;
17
- };
18
-
19
- static struct mspack_file *m_open(struct mspack_system *self, const char *filename, int mode) {
20
- struct mspack_file_p *fh;
21
- if (mode != MSPACK_SYS_OPEN_WRITE &&
22
- mode != MSPACK_SYS_OPEN_READ) return NULL;
23
-
24
- if ((fh = (struct mspack_file_p *) malloc(sizeof(struct mspack_file_p)))) {
25
- if (mode == MSPACK_SYS_OPEN_WRITE) {
26
- fh->fh = NULL;
27
- md5_init_ctx(&md5_context);
28
- return (struct mspack_file *) fh;
29
- }
30
- else {
31
- if ((fh->fh = fopen(filename, "rb")))
32
- return (struct mspack_file *) fh;
33
- }
34
- /* error - free file handle and return NULL */
35
- free(fh);
36
- }
37
- return NULL;
38
- }
39
-
40
- static void m_close(struct mspack_file *file) {
41
- struct mspack_file_p *self = (struct mspack_file_p *) file;
42
- if (self) {
43
- if (self->fh) fclose(self->fh);
44
- else {
45
- unsigned char md5[16];
46
- md5_finish_ctx(&md5_context, (void *) &md5);
47
- snprintf(md5_string, sizeof(md5_string),
48
- "%02x%02x%02x%02x%02x%02x%02x%02x"
49
- "%02x%02x%02x%02x%02x%02x%02x%02x",
50
- md5[0], md5[1], md5[2], md5[3],
51
- md5[4], md5[5], md5[6], md5[7],
52
- md5[8], md5[9], md5[10], md5[11],
53
- md5[12], md5[13], md5[14], md5[15]);
54
- }
55
- free(self);
56
- }
57
- }
58
-
59
- static int m_read(struct mspack_file *file, void *buffer, int bytes) {
60
- struct mspack_file_p *self = (struct mspack_file_p *) file;
61
- if (self && self->fh && buffer && bytes >= 0) {
62
- size_t count = fread(buffer, 1, bytes, self->fh);
63
- if (!ferror(self->fh)) return (int) count;
64
- }
65
- return -1;
66
- }
67
-
68
- static int m_write(struct mspack_file *file, void *buffer, int bytes) {
69
- struct mspack_file_p *self = (struct mspack_file_p *) file;
70
- if (!self || self->fh || !buffer || bytes < 0) return -1;
71
- md5_process_bytes(buffer, bytes, &md5_context);
72
- return bytes;
73
- }
74
-
75
- static int m_seek(struct mspack_file *file, off_t offset, int mode) {
76
- struct mspack_file_p *self = (struct mspack_file_p *) file;
77
- if (self && self->fh) {
78
- switch (mode) {
79
- case MSPACK_SYS_SEEK_START: mode = SEEK_SET; break;
80
- case MSPACK_SYS_SEEK_CUR: mode = SEEK_CUR; break;
81
- case MSPACK_SYS_SEEK_END: mode = SEEK_END; break;
82
- default: return -1;
83
- }
84
- #if HAVE_FSEEKO
85
- return fseeko(self->fh, offset, mode);
86
- #else
87
- return fseek(self->fh, offset, mode);
88
- #endif
89
- }
90
- return -1;
91
- }
92
-
93
- static off_t m_tell(struct mspack_file *file) {
94
- struct mspack_file_p *self = (struct mspack_file_p *) file;
95
- #if HAVE_FSEEKO
96
- return (self && self->fh) ? (off_t) ftello(self->fh) : 0;
97
- #else
98
- return (self && self->fh) ? (off_t) ftell(self->fh) : 0;
99
- #endif
100
- }
101
-
102
- static void m_msg(struct mspack_file *file, const char *format, ...) {
103
- va_list ap;
104
- va_start(ap, format);
105
- vfprintf(stderr, format, ap);
106
- va_end(ap);
107
- fputc((int) '\n', stderr);
108
- fflush(stderr);
109
- }
110
- static void *m_alloc(struct mspack_system *self, size_t bytes) {
111
- return malloc(bytes);
112
- }
113
- static void m_free(void *buffer) {
114
- free(buffer);
115
- }
116
- static void m_copy(void *src, void *dest, size_t bytes) {
117
- memcpy(dest, src, bytes);
118
- }
119
-
120
- static struct mspack_system read_files_write_md5 = {
121
- &m_open, &m_close, &m_read, &m_write, &m_seek,
122
- &m_tell, &m_msg, &m_alloc, &m_free, &m_copy, NULL
123
- };
@@ -1,84 +0,0 @@
1
- #!perl -w
2
- use strict;
3
-
4
- sub byte($) {pack 'c',$_[0]};
5
- sub ubyte($) {pack 'C',$_[0]};
6
- sub uword($) {pack 'v',$_[0]};
7
- sub ulong($) {pack 'V',$_[0]};
8
-
9
- my $RESV_HEADER = 'reserved header test 12345';
10
- #my $RESV_HEADER = '';
11
- #my $RESV_FOLDER = 'reserved folder test 12345';
12
- my $RESV_FOLDER = '';
13
- my $RESV_DATA = 'reserved data test 12345';
14
- #my $RESV_DATA = '';
15
-
16
- my $header
17
- = 'MSCF' # 00 SIGNATURE
18
- . ulong(0) # 04
19
- . ulong(0) # 08 CABINET SIZE
20
- . ulong(0) # 0C
21
- . ulong(0) # 10 FILES OFFSET
22
- . ulong(0) # 14
23
- . ubyte(3) # 18 MINOR VERSION
24
- . ubyte(1) # 19 MAJOR VERSION
25
- . uword(1) # 1A number of folders
26
- . uword(2) # 1C number of files
27
- . uword(4) # 1E flags
28
- . uword(1) # 20 set id
29
- . uword(0) # 22 cab index
30
-
31
- . uword(length($RESV_HEADER)) # 00 header reserved
32
- . ubyte(length($RESV_FOLDER)) # 02 folder resv
33
- . ubyte(length($RESV_DATA)) # 03 data resv
34
- . $RESV_HEADER
35
- ;
36
-
37
- my $folder
38
- = ulong(0) # data offset
39
- . uword(2) # number of blocks
40
- . uword(0) # compression method
41
- . $RESV_FOLDER
42
- ;
43
-
44
- my $files
45
- = ulong(5) # uncompressed size
46
- . ulong(0) # folder offset
47
- . uword(0) # folder index
48
- . uword(0x226C) # time
49
- . uword(0x59BA) # date
50
- . uword(0x20) # attribs
51
- . "test1.txt\0"
52
-
53
- . ulong(5) # uncompressed size
54
- . ulong(5) # folder offset
55
- . uword(0) # folder index
56
- . uword(0x226C) # time
57
- . uword(0x59BA) # date
58
- . uword(0x20) # attribs
59
- . "test2.txt\0"
60
- ;
61
-
62
- my $datablocks
63
- = ulong(0) # checksum
64
- . uword(5) # compressed size
65
- . uword(5) # uncompressed size
66
- . $RESV_DATA
67
- . "TEST\n" # actual data
68
-
69
- . ulong(0) # checksum
70
- . uword(5) # compressed size
71
- . uword(5) # uncompressed size
72
- . $RESV_DATA
73
- . "test\n" # actual data
74
- ;
75
-
76
- my $pre_files = $header . $folder;
77
- my $pre_data = $pre_files . $files;
78
- my $cab = $pre_data . $datablocks;
79
-
80
- substr($header, 0x08, 4, ulong(length($cab)));
81
- substr($header, 0x10, 4, ulong(length($pre_files)));
82
- substr($folder, 0x00, 4, ulong(length($pre_data)));
83
-
84
- print $header . $folder . $files . $datablocks;
@@ -1,75 +0,0 @@
1
- #!perl -w
2
- use strict;
3
-
4
- sub byte($) {pack 'c',$_[0]};
5
- sub ubyte($) {pack 'C',$_[0]};
6
- sub uword($) {pack 'v',$_[0]};
7
- sub ulong($) {pack 'V',$_[0]};
8
-
9
- my $header
10
- = 'MSCF' # 00 SIGNATURE
11
- . ulong(0) # 04
12
- . ulong(0) # 08 CABINET SIZE
13
- . ulong(0) # 0C
14
- . ulong(0) # 10 FILES OFFSET
15
- . ulong(0) # 14
16
- . ubyte(3) # 18 MINOR VERSION
17
- . ubyte(1) # 19 MAJOR VERSION
18
- . uword(1) # 1A number of folders
19
- . uword(3) # 1C number of files
20
- . uword(1) # 1E flags
21
- . uword(12345) # 20 set id
22
- . uword(4) # 22 cab index
23
- . "cabd_multi_basic_pt4.cab\0"
24
- . "basic multipart test part 4\0"
25
-
26
- ;
27
-
28
- my $folder
29
- = ulong(0) # data offset
30
- . uword(1) # number of blocks
31
- . uword(0) # compression method
32
- ;
33
-
34
- my $files
35
- = ulong(76) # uncompressed size
36
- . ulong(0) # folder offset
37
- . uword(0xFFFD) # folder index
38
- . uword(0x226C) # time
39
- . uword(0x59BA) # date
40
- . uword(0x20) # attribs
41
- . "test1.txt\0"
42
-
43
- . ulong(38) # uncompressed size
44
- . ulong(76) # folder offset
45
- . uword(0xFFFD) # folder index
46
- . uword(0x226C) # time
47
- . uword(0x59BA) # date
48
- . uword(0x20) # attribs
49
- . "test2.txt\0"
50
-
51
- . ulong(76) # uncompressed size
52
- . ulong(76+38) # folder offset
53
- . uword(0xFFFD) # folder index
54
- . uword(0x226C) # time
55
- . uword(0x59BA) # date
56
- . uword(0x20) # attribs
57
- . "test3.txt\0"
58
- ;
59
-
60
- my $datablocks
61
- = ulong(0) # checksum
62
- . uword(38) # compressed size
63
- . uword(190) # uncompressed size
64
- . "This is the data from cabinet part 5.\n" # actual data
65
- ;
66
-
67
- my $pre_files = $header . $folder;
68
- my $pre_data = $pre_files . $files;
69
- my $cab = $pre_data . $datablocks;
70
-
71
- substr($header, 0x08, 4, ulong(length($cab)));
72
- substr($header, 0x10, 4, ulong(length($pre_files)));
73
- substr($folder, 0x00, 4, ulong(length($pre_data)));
74
-
75
- print $header . $folder . $files . $datablocks;
@@ -1,17 +0,0 @@
1
- #!/usr/bin/perl -w
2
- use strict;
3
- my $name = '123456789';
4
- for my $file (0 .. 9) {
5
- for my $ext (0 .. 4) {
6
- open my $fh, '>', "f$file$ext.kwj";
7
- my $offset = 14 + $file + $ext;
8
- my $flags = ($file > 0 ? 8 : 0) | ($ext > 0 ? 16 : 0);
9
- print $fh pack 'A4Vvvv', 'KWAJ', 0xD127F088, 0, $offset, $flags;
10
- print $fh substr $name, 0, $file if $file > 0;
11
- print $fh "\0" if $file > 0 && $file < 9;
12
- print $fh substr $name, 0, $ext if $ext > 0;
13
- print $fh "\0" if $ext > 0 && $ext < 4;
14
- print $fh "\xFF";
15
- close $fh;
16
- }
17
- }
Binary file
Binary file
Binary file