libmspack 0.10.1 → 0.10.1.2

Sign up to get free protection for your applications and to get access to all the features.
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,285 +0,0 @@
1
- #ifdef HAVE_CONFIG_H
2
- # include <config.h>
3
- #endif
4
-
5
- #include <stdio.h>
6
- #include <stdlib.h>
7
- #include <unistd.h>
8
- #include <string.h>
9
-
10
- #include <mspack.h>
11
- #include <system.h>
12
-
13
- #define FILENAME ".chminfo-temp"
14
-
15
- unsigned char *load_sys_data(struct mschm_decompressor *chmd,
16
- struct mschmd_header *chm,
17
- const char *filename,
18
- off_t *length_ptr)
19
- {
20
- struct mschmd_file *file;
21
- unsigned char *data;
22
- FILE *fh;
23
-
24
- for (file = chm->sysfiles; file; file = file->next) {
25
- if (strcmp(file->filename, filename) == 0) break;
26
- }
27
- if (!file || file->section->id != 0) return NULL;
28
- if (chmd->extract(chmd, file, FILENAME)) return NULL;
29
- if (length_ptr) *length_ptr = file->length;
30
- if (!(data = (unsigned char *) malloc((size_t) file->length))) return NULL;
31
- if ((fh = fopen(FILENAME, "rb"))) {
32
- fread(data, (size_t) file->length, 1, fh);
33
- fclose(fh);
34
- }
35
- else {
36
- free(data);
37
- data = NULL;
38
- }
39
- unlink(FILENAME);
40
- return data;
41
- }
42
-
43
- char *guid(unsigned char *data) {
44
- static char result[43];
45
- snprintf(result, sizeof(result),
46
- "{%08X-%04X-%04X-%04X-%02X%02X%02X%02X%02X%02X%02X%02X}",
47
- EndGetI32(&data[0]),
48
- data[4] | (data[5] << 8),
49
- data[6] | (data[7] << 8),
50
- data[8] | (data[9] << 8),
51
- data[10], data[11], data[12], data[13],
52
- data[14], data[15], data[16], data[17]);
53
- return result;
54
- }
55
-
56
- #define READ_ENCINT(var, label) do { \
57
- (var) = 0; \
58
- do { \
59
- if (p > &chunk[chm->chunk_size-2]) goto label; \
60
- (var) = ((var) << 7) | (*p & 0x7F); \
61
- } while (*p++ & 0x80); \
62
- } while (0)
63
-
64
- void print_dir(struct mschmd_header *chm, char *filename) {
65
- unsigned char dir[0x54], *chunk;
66
- unsigned int i;
67
- FILE *fh;
68
-
69
- if (!(chunk = (unsigned char *) malloc(chm->chunk_size))) return;
70
-
71
- if ((fh = fopen(filename, "rb"))) {
72
- #if HAVE_FSEEKO
73
- fseeko(fh, chm->dir_offset - 84, SEEK_SET);
74
- #else
75
- fseek(fh, chm->dir_offset - 84, SEEK_SET);
76
- #endif
77
- fread(&dir[0], 84, 1, fh);
78
- printf(" chmhs1_Signature = %4.4s\n", &dir[0]);
79
- printf(" chmhs1_Version = %d\n", EndGetI32(&dir[4]));
80
- printf(" chmhs1_HeaderLen = %d\n", EndGetI32(&dir[8]));
81
- printf(" chmhs1_Unknown1 = %d\n", EndGetI32(&dir[12]));
82
- printf(" chmhs1_ChunkSize = %d\n", EndGetI32(&dir[16]));
83
- printf(" chmhs1_Density = %d\n", EndGetI32(&dir[20]));
84
- printf(" chmhs1_Depth = %d\n", EndGetI32(&dir[24]));
85
- printf(" chmhs1_IndexRoot = %d\n", EndGetI32(&dir[28]));
86
- printf(" chmhs1_FirstPMGL = %d\n", EndGetI32(&dir[32]));
87
- printf(" chmhs1_LastPMGL = %d\n", EndGetI32(&dir[36]));
88
- printf(" chmhs1_Unknown2 = %d\n", EndGetI32(&dir[40]));
89
- printf(" chmhs1_NumChunks = %d\n", EndGetI32(&dir[44]));
90
- printf(" chmhs1_LanguageID = %d\n", EndGetI32(&dir[48]));
91
- printf(" chmhs1_GUID = %s\n", guid(&dir[52]));
92
- printf(" chmhs1_Unknown3 = %d\n", EndGetI32(&dir[68]));
93
- printf(" chmhs1_Unknown4 = %d\n", EndGetI32(&dir[72]));
94
- printf(" chmhs1_Unknown5 = %d\n", EndGetI32(&dir[76]));
95
- printf(" chmhs1_Unknown6 = %d\n", EndGetI32(&dir[80]));
96
-
97
- for (i = 0; i < chm->num_chunks; i++) {
98
- unsigned int num_entries, quickref_size, j, k;
99
- unsigned char *p, *name;
100
- printf(" CHUNK %u:\n", i);
101
- fread(chunk, chm->chunk_size, 1, fh);
102
-
103
- if ((chunk[0] == 'P') && (chunk[1] == 'M') &&
104
- (chunk[2] == 'G') && (chunk[3] == 'L'))
105
- {
106
- k = chm->chunk_size - 2;
107
- num_entries = chunk[k] | (chunk[k+1] << 8);
108
- quickref_size = EndGetI32(&chunk[4]);
109
- if (quickref_size > (chm->chunk_size - 20)) {
110
- printf(" QR size of %d too large (max is %d)\n",
111
- quickref_size, chm->chunk_size - 20);
112
- quickref_size = chm->chunk_size - 20;
113
- }
114
- printf(" PMGL entries=%u qrsize=%u zero=%u prev=%d next=%d\n",
115
- num_entries, quickref_size, EndGetI32(&chunk[8]),
116
- EndGetI32(&chunk[12]), EndGetI32(&chunk[16]));
117
-
118
- printf(" QR: entry %4u = offset %u\n", 0, 20);
119
- j = (1 << chm->density) + 1;
120
- while (j < num_entries) {
121
- k -= 2;
122
- if (k < (chm->chunk_size - quickref_size)) break;
123
- printf(" QR: entry %4u = offset %u\n",
124
- j, (chunk[k] | (chunk[k+1] << 8)) + 20);
125
- j += (1 << chm->density) + 1;
126
- }
127
-
128
- p = &chunk[20];
129
- for (j = 0; j < num_entries; j++) {
130
- unsigned int name_len = 0, section = 0, offset = 0, length = 0;
131
- printf(" %4d: ", (int) (p - &chunk[0]));
132
- READ_ENCINT(name_len, PMGL_end); name = p; p += name_len;
133
- READ_ENCINT(section, PMGL_end);
134
- READ_ENCINT(offset, PMGL_end);
135
- READ_ENCINT(length, PMGL_end);
136
- printf("sec=%u off=%-10u len=%-10u name=\"",section,offset,length);
137
- if (name_len) fwrite(name, 1, name_len, stdout);
138
- printf("\"\n");
139
- }
140
- PMGL_end:
141
- if (j != num_entries) printf("premature end of chunk\n");
142
-
143
- }
144
- else if ((chunk[0] == 'P') && (chunk[1] == 'M') &&
145
- (chunk[2] == 'G') && (chunk[3] == 'I'))
146
- {
147
- k = chm->chunk_size - 2;
148
- num_entries = chunk[k] | (chunk[k+1] << 8);
149
- quickref_size = EndGetI32(&chunk[4]);
150
- printf(" PMGI entries=%u free=%u\n", num_entries, quickref_size);
151
-
152
- printf(" QR: entry %4u = offset %u\n", 0, 8);
153
- j = (1 << chm->density) + 1;
154
- while (j < num_entries) {
155
- k -= 2;
156
- printf(" QR: entry %4u = offset %u\n",
157
- j, (chunk[k] | (chunk[k+1] << 8)) + 8);
158
- j += (1 << chm->density) + 1;
159
- }
160
-
161
- p = &chunk[8];
162
- for (j = 0; j < num_entries; j++) {
163
- unsigned int name_len, section;
164
- printf(" %4d: ", (int) (p - &chunk[0]));
165
- READ_ENCINT(name_len, PMGI_end); name = p; p += name_len;
166
- READ_ENCINT(section, PMGI_end);
167
- printf("chunk=%-4u name=\"",section);
168
- if (name_len) fwrite(name, 1, name_len, stdout);
169
- printf("\"\n");
170
- }
171
- PMGI_end:
172
- if (j != num_entries) printf("premature end of chunk\n");
173
- }
174
- else {
175
- printf(" unknown format\n");
176
- }
177
- }
178
-
179
- fclose(fh);
180
- }
181
- }
182
-
183
-
184
- int main(int argc, char *argv[]) {
185
- struct mschm_decompressor *chmd;
186
- struct mschmd_header *chm;
187
- struct mschmd_file *file;
188
- unsigned int numf, i;
189
- unsigned char *data;
190
- off_t pos, len;
191
-
192
- setbuf(stdout, NULL);
193
- setbuf(stderr, NULL);
194
-
195
- MSPACK_SYS_SELFTEST(i);
196
- if (i) return 0;
197
-
198
- if ((chmd = mspack_create_chm_decompressor(NULL))) {
199
- for (argv++; *argv; argv++) {
200
- printf("%s\n", *argv);
201
- if ((chm = chmd->open(chmd, *argv))) {
202
- printf(" chmhead_Version %u\n", chm->version);
203
- printf(" chmhead_Timestamp %u\n", chm->timestamp);
204
- printf(" chmhead_LanguageID %u\n", chm->language);
205
- printf(" chmhs0_FileLen %" LD "\n", chm->length);
206
- printf(" chmhst_OffsetHS1 %" LD "\n", chm->dir_offset);
207
- printf(" chmhst3_OffsetCS0 %" LD "\n", chm->sec0.offset);
208
-
209
- print_dir(chm, *argv);
210
-
211
- if ((data = load_sys_data(chmd, chm,
212
- "::DataSpace/Storage/MSCompressed/ControlData", &len)))
213
- {
214
- printf(" lzxcd_Length %u\n", EndGetI32(&data[0]));
215
- printf(" lzxcd_Signature %4.4s\n", &data[4]);
216
- printf(" lzxcd_Version %u\n", EndGetI32(&data[8]));
217
- printf(" lzxcd_ResetInterval %u\n", EndGetI32(&data[12]));
218
- printf(" lzxcd_WindowSize %u\n", EndGetI32(&data[16]));
219
- printf(" lzxcd_CacheSize %u\n", EndGetI32(&data[20]));
220
- printf(" lzxcd_Unknown1 %u\n", EndGetI32(&data[24]));
221
- free(data);
222
- }
223
-
224
- if ((data = load_sys_data(chmd, chm,
225
- "::DataSpace/Storage/MSCompressed/Transform/{7FC28940-"
226
- "9D31-11D0-9B27-00A0C91E9C7C}/InstanceData/ResetTable", &len)))
227
- {
228
- off_t contents = chm->sec0.offset;
229
- printf(" lzxrt_Unknown1 %u\n", EndGetI32(&data[0]));
230
- printf(" lzxrt_NumEntries %u\n", EndGetI32(&data[4]));
231
- printf(" lzxrt_EntrySize %u\n", EndGetI32(&data[8]));
232
- printf(" lzxrt_TableOffset %u\n", EndGetI32(&data[12]));
233
- printf(" lzxrt_UncompLen %llu\n", EndGetI64(&data[16]));
234
- printf(" lzxrt_CompLen %llu\n", EndGetI64(&data[24]));
235
- printf(" lzxrt_FrameLen %u\n", EndGetI32(&data[32]));
236
-
237
- for (file = chm->sysfiles; file; file = file->next) {
238
- if (strcmp(file->filename,
239
- "::DataSpace/Storage/MSCompressed/Content") == 0)
240
- {
241
- contents += file->offset;
242
- break;
243
- }
244
- }
245
-
246
- printf(" - reset table (uncomp offset -> stream offset "
247
- "[real offset, length in file]\n");
248
-
249
- numf = EndGetI32(&data[4]);
250
- pos = ((unsigned int) EndGetI32(&data[12]));
251
- switch (EndGetI32(&data[8])) {
252
- case 4:
253
- for (i = 0; i < numf && pos < len; i++, pos += 4) {
254
- unsigned int rtdata = EndGetI32(&data[pos]);
255
- printf(" %-10u -> %-10u [ %" LU " %u ]\n",
256
- i * EndGetI32(&data[32]),
257
- rtdata,
258
- contents + rtdata,
259
- (i == (numf-1))
260
- ? (EndGetI32(&data[24]) - rtdata)
261
- : (EndGetI32(&data[pos + 4]) - rtdata)
262
- );
263
- }
264
- break;
265
- case 8:
266
- for (i = 0; i < numf && pos < len; i++, pos += 8) {
267
- unsigned long long int rtdata = EndGetI64(&data[pos]);
268
- printf(" %-10llu -> %-10llu [ %llu %llu ]\n",
269
- i * EndGetI64(&data[32]), rtdata, contents + rtdata,
270
- (i == (numf-1))
271
- ? (EndGetI64(&data[24]) - rtdata)
272
- : (EndGetI64(&data[pos + 8]) - rtdata)
273
- );
274
- }
275
- break;
276
- }
277
- free(data);
278
- }
279
- chmd->close(chmd, chm);
280
- }
281
- }
282
- mspack_destroy_chm_decompressor(chmd);
283
- }
284
- return 0;
285
- }
@@ -1,22 +0,0 @@
1
- #define ERROR(base) error_msg(base->last_error(base))
2
-
3
- const char *error_msg(int error) {
4
- static char buf[32];
5
- switch (error) {
6
- case MSPACK_ERR_OK: return "no error";
7
- case MSPACK_ERR_ARGS: return "bad arguments to library function";
8
- case MSPACK_ERR_OPEN: return "error opening file";
9
- case MSPACK_ERR_READ: return "read error";
10
- case MSPACK_ERR_WRITE: return "write error";
11
- case MSPACK_ERR_SEEK: return "seek error";
12
- case MSPACK_ERR_NOMEMORY: return "out of memory";
13
- case MSPACK_ERR_SIGNATURE: return "bad signature";
14
- case MSPACK_ERR_DATAFORMAT: return "error in data format";
15
- case MSPACK_ERR_CHECKSUM: return "checksum error";
16
- case MSPACK_ERR_CRUNCH: return "compression error";
17
- case MSPACK_ERR_DECRUNCH: return "decompression error";
18
- }
19
-
20
- snprintf(buf, sizeof(buf), "unknown error %d", error);
21
- return buf;
22
- }
@@ -1,119 +0,0 @@
1
- /* KWAJ 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 <mspack.h>
11
- #include <system.h>
12
-
13
- #define __tf3(x) #x
14
- #define __tf2(x) __tf3(x)
15
- #define TESTFILE(fname) (__tf2(TEST_FILES) "/" fname)
16
-
17
- unsigned int test_count = 0;
18
- #define TEST(x) do {\
19
- test_count++; \
20
- if (!(x)) {printf("%s:%d FAILED %s\n",__func__,__LINE__,#x);exit(1);} \
21
- } while (0)
22
-
23
- /* test parsing of KWAJ filename/extension headers */
24
- void kwajd_open_test_01() {
25
- struct mskwaj_decompressor *kwajd;
26
- struct mskwajd_header *hdr;
27
-
28
- TEST(kwajd = mspack_create_kwaj_decompressor(NULL));
29
-
30
- TEST(hdr = kwajd->open(kwajd, TESTFILE("f00.kwj")));
31
- TEST(hdr->filename == NULL);
32
- kwajd->close(kwajd, hdr);
33
-
34
- #define GOOD(testfile, fname) \
35
- TEST(hdr = kwajd->open(kwajd, testfile)); \
36
- TEST(hdr->filename && !strcmp(fname, hdr->filename)); \
37
- kwajd->close(kwajd, hdr)
38
-
39
- #define BAD(testfile) \
40
- TEST(!kwajd->open(kwajd, testfile)); \
41
- TEST(kwajd->last_error(kwajd) == MSPACK_ERR_DATAFORMAT)
42
-
43
- GOOD(TESTFILE("f01.kwj"), ".1");
44
- GOOD(TESTFILE("f02.kwj"), ".12");
45
- GOOD(TESTFILE("f03.kwj"), ".123");
46
-
47
- GOOD(TESTFILE("f10.kwj"), "1");
48
- GOOD(TESTFILE("f11.kwj"), "1.1");
49
- GOOD(TESTFILE("f12.kwj"), "1.12");
50
- GOOD(TESTFILE("f13.kwj"), "1.123");
51
-
52
- GOOD(TESTFILE("f20.kwj"), "12");
53
- GOOD(TESTFILE("f21.kwj"), "12.1");
54
- GOOD(TESTFILE("f22.kwj"), "12.12");
55
- GOOD(TESTFILE("f23.kwj"), "12.123");
56
-
57
- GOOD(TESTFILE("f30.kwj"), "123");
58
- GOOD(TESTFILE("f31.kwj"), "123.1");
59
- GOOD(TESTFILE("f32.kwj"), "123.12");
60
- GOOD(TESTFILE("f33.kwj"), "123.123");
61
-
62
- GOOD(TESTFILE("f40.kwj"), "1234");
63
- GOOD(TESTFILE("f41.kwj"), "1234.1");
64
- GOOD(TESTFILE("f42.kwj"), "1234.12");
65
- GOOD(TESTFILE("f43.kwj"), "1234.123");
66
-
67
- GOOD(TESTFILE("f50.kwj"), "12345");
68
- GOOD(TESTFILE("f51.kwj"), "12345.1");
69
- GOOD(TESTFILE("f52.kwj"), "12345.12");
70
- GOOD(TESTFILE("f53.kwj"), "12345.123");
71
-
72
- GOOD(TESTFILE("f60.kwj"), "123456");
73
- GOOD(TESTFILE("f61.kwj"), "123456.1");
74
- GOOD(TESTFILE("f62.kwj"), "123456.12");
75
- GOOD(TESTFILE("f63.kwj"), "123456.123");
76
-
77
- GOOD(TESTFILE("f70.kwj"), "1234567");
78
- GOOD(TESTFILE("f71.kwj"), "1234567.1");
79
- GOOD(TESTFILE("f72.kwj"), "1234567.12");
80
- GOOD(TESTFILE("f73.kwj"), "1234567.123");
81
-
82
- GOOD(TESTFILE("f80.kwj"), "12345678");
83
- GOOD(TESTFILE("f81.kwj"), "12345678.1");
84
- GOOD(TESTFILE("f82.kwj"), "12345678.12");
85
- GOOD(TESTFILE("f83.kwj"), "12345678.123");
86
-
87
- BAD(TESTFILE("f04.kwj"));
88
- BAD(TESTFILE("f14.kwj"));
89
- BAD(TESTFILE("f24.kwj"));
90
- BAD(TESTFILE("f34.kwj"));
91
- BAD(TESTFILE("f44.kwj"));
92
- BAD(TESTFILE("f54.kwj"));
93
- BAD(TESTFILE("f64.kwj"));
94
- BAD(TESTFILE("f74.kwj"));
95
- BAD(TESTFILE("f84.kwj"));
96
-
97
- BAD(TESTFILE("f90.kwj"));
98
- BAD(TESTFILE("f91.kwj"));
99
- BAD(TESTFILE("f92.kwj"));
100
- BAD(TESTFILE("f93.kwj"));
101
- BAD(TESTFILE("f94.kwj"));
102
-
103
- #undef GOOD
104
- #undef BAD
105
-
106
- mspack_destroy_kwaj_decompressor(kwajd);
107
- }
108
-
109
- int main() {
110
- int selftest;
111
-
112
- MSPACK_SYS_SELFTEST(selftest);
113
- TEST(selftest == MSPACK_ERR_OK);
114
-
115
- kwajd_open_test_01();
116
-
117
- printf("ALL %d TESTS PASSED.\n", test_count);
118
- return 0;
119
- }