libmspack 0.10.1 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +37 -0
- data/.gitignore +2 -0
- data/Rakefile +1 -1
- data/ext/Rakefile +1 -1
- data/ext/libmspack/ChangeLog +145 -0
- data/ext/libmspack/INSTALL +3 -3
- data/ext/libmspack/Makefile.am +7 -4
- data/ext/libmspack/Makefile.in +265 -147
- data/ext/libmspack/README +3 -2
- data/ext/libmspack/aclocal.m4 +111 -113
- data/ext/libmspack/ar-lib +10 -9
- data/ext/libmspack/compile +9 -8
- data/ext/libmspack/config.guess +887 -613
- data/ext/libmspack/config.h.in +6 -9
- data/ext/libmspack/config.sub +1349 -1260
- data/ext/libmspack/configure +3035 -2490
- data/ext/libmspack/configure.ac +3 -3
- data/ext/libmspack/depcomp +4 -4
- data/ext/libmspack/install-sh +107 -74
- data/ext/libmspack/libmscabd.la +1 -1
- data/ext/libmspack/libmschmd.la +1 -1
- data/ext/libmspack/libmspack.la +1 -1
- data/ext/libmspack/ltmain.sh +156 -61
- data/ext/libmspack/m4/libtool.m4 +19 -12
- data/ext/libmspack/missing +8 -8
- data/ext/libmspack/mspack/cabd.c +21 -19
- data/ext/libmspack/mspack/chm.h +3 -2
- data/ext/libmspack/mspack/chmd.c +137 -57
- data/ext/libmspack/mspack/kwajd.c +29 -29
- data/ext/libmspack/mspack/lzx.h +0 -1
- data/ext/libmspack/mspack/lzxd.c +30 -154
- data/ext/libmspack/mspack/macros.h +64 -0
- data/ext/libmspack/mspack/mszipd.c +7 -18
- data/ext/libmspack/mspack/qtmd.c +3 -5
- data/ext/libmspack/mspack/readbits.h +14 -5
- data/ext/libmspack/mspack/readhuff.h +26 -21
- data/ext/libmspack/mspack/system.c +0 -5
- data/ext/libmspack/mspack/system.h +20 -67
- data/ext/libmspack/test-driver +16 -11
- data/ext/x86_64-linux/libmspack.so +0 -0
- data/ext/x86_64-windows/mspack.dll +0 -0
- data/lib/libmspack/version.rb +1 -1
- data/lib/libmspack.rb +1 -1
- data/libmspack.gemspec +1 -1
- metadata +7 -348
- data/.travis.yml +0 -5
- data/ext/i386-windows/libmspack.dll +0 -0
- data/ext/libmspack/doc/Doxyfile +0 -9
- data/ext/libmspack/doc/Makefile +0 -8
- data/ext/libmspack/doc/html/annotated.html +0 -104
- data/ext/libmspack/doc/html/bc_s.png +0 -0
- data/ext/libmspack/doc/html/bdwn.png +0 -0
- data/ext/libmspack/doc/html/classes.html +0 -85
- data/ext/libmspack/doc/html/closed.png +0 -0
- data/ext/libmspack/doc/html/dir_f4d90282fe865f947a460986b93b960a.html +0 -83
- data/ext/libmspack/doc/html/doc.png +0 -0
- data/ext/libmspack/doc/html/doxygen.css +0 -1596
- data/ext/libmspack/doc/html/doxygen.png +0 -0
- data/ext/libmspack/doc/html/dynsections.js +0 -97
- data/ext/libmspack/doc/html/files.html +0 -78
- data/ext/libmspack/doc/html/folderclosed.png +0 -0
- data/ext/libmspack/doc/html/folderopen.png +0 -0
- data/ext/libmspack/doc/html/functions.html +0 -454
- data/ext/libmspack/doc/html/functions_vars.html +0 -454
- data/ext/libmspack/doc/html/globals.html +0 -406
- data/ext/libmspack/doc/html/globals_defs.html +0 -316
- data/ext/libmspack/doc/html/globals_func.html +0 -161
- data/ext/libmspack/doc/html/graph_legend.html +0 -102
- data/ext/libmspack/doc/html/graph_legend.md5 +0 -1
- data/ext/libmspack/doc/html/graph_legend.png +0 -0
- data/ext/libmspack/doc/html/index.html +0 -167
- data/ext/libmspack/doc/html/jquery.js +0 -87
- data/ext/libmspack/doc/html/menu.js +0 -26
- data/ext/libmspack/doc/html/menudata.js +0 -56
- data/ext/libmspack/doc/html/mspack_8h.html +0 -2664
- data/ext/libmspack/doc/html/mspack_8h__incl.map +0 -2
- data/ext/libmspack/doc/html/mspack_8h__incl.md5 +0 -1
- data/ext/libmspack/doc/html/mspack_8h__incl.png +0 -0
- data/ext/libmspack/doc/html/mspack_8h_source.html +0 -238
- data/ext/libmspack/doc/html/nav_f.png +0 -0
- data/ext/libmspack/doc/html/nav_g.png +0 -0
- data/ext/libmspack/doc/html/nav_h.png +0 -0
- data/ext/libmspack/doc/html/open.png +0 -0
- data/ext/libmspack/doc/html/search/all_0.html +0 -26
- data/ext/libmspack/doc/html/search/all_0.js +0 -6
- data/ext/libmspack/doc/html/search/all_1.html +0 -26
- data/ext/libmspack/doc/html/search/all_1.js +0 -5
- data/ext/libmspack/doc/html/search/all_10.html +0 -26
- data/ext/libmspack/doc/html/search/all_10.js +0 -8
- data/ext/libmspack/doc/html/search/all_11.html +0 -26
- data/ext/libmspack/doc/html/search/all_11.js +0 -4
- data/ext/libmspack/doc/html/search/all_12.html +0 -26
- data/ext/libmspack/doc/html/search/all_12.js +0 -4
- data/ext/libmspack/doc/html/search/all_13.html +0 -26
- data/ext/libmspack/doc/html/search/all_13.js +0 -4
- data/ext/libmspack/doc/html/search/all_2.html +0 -26
- data/ext/libmspack/doc/html/search/all_2.js +0 -14
- data/ext/libmspack/doc/html/search/all_3.html +0 -26
- data/ext/libmspack/doc/html/search/all_3.js +0 -13
- data/ext/libmspack/doc/html/search/all_4.html +0 -26
- data/ext/libmspack/doc/html/search/all_4.js +0 -6
- data/ext/libmspack/doc/html/search/all_5.html +0 -26
- data/ext/libmspack/doc/html/search/all_5.js +0 -13
- data/ext/libmspack/doc/html/search/all_6.html +0 -26
- data/ext/libmspack/doc/html/search/all_6.js +0 -4
- data/ext/libmspack/doc/html/search/all_7.html +0 -26
- data/ext/libmspack/doc/html/search/all_7.js +0 -5
- data/ext/libmspack/doc/html/search/all_8.html +0 -26
- data/ext/libmspack/doc/html/search/all_8.js +0 -5
- data/ext/libmspack/doc/html/search/all_9.html +0 -26
- data/ext/libmspack/doc/html/search/all_9.js +0 -7
- data/ext/libmspack/doc/html/search/all_a.html +0 -26
- data/ext/libmspack/doc/html/search/all_a.js +0 -144
- data/ext/libmspack/doc/html/search/all_b.html +0 -26
- data/ext/libmspack/doc/html/search/all_b.js +0 -10
- data/ext/libmspack/doc/html/search/all_c.html +0 -26
- data/ext/libmspack/doc/html/search/all_c.js +0 -5
- data/ext/libmspack/doc/html/search/all_d.html +0 -26
- data/ext/libmspack/doc/html/search/all_d.js +0 -7
- data/ext/libmspack/doc/html/search/all_e.html +0 -26
- data/ext/libmspack/doc/html/search/all_e.js +0 -5
- data/ext/libmspack/doc/html/search/all_f.html +0 -26
- data/ext/libmspack/doc/html/search/all_f.js +0 -15
- data/ext/libmspack/doc/html/search/classes_0.html +0 -26
- data/ext/libmspack/doc/html/search/classes_0.js +0 -30
- data/ext/libmspack/doc/html/search/close.png +0 -0
- data/ext/libmspack/doc/html/search/defines_0.html +0 -26
- data/ext/libmspack/doc/html/search/defines_0.js +0 -84
- data/ext/libmspack/doc/html/search/files_0.html +0 -26
- data/ext/libmspack/doc/html/search/files_0.js +0 -4
- data/ext/libmspack/doc/html/search/functions_0.html +0 -26
- data/ext/libmspack/doc/html/search/functions_0.js +0 -33
- data/ext/libmspack/doc/html/search/mag_sel.png +0 -0
- data/ext/libmspack/doc/html/search/nomatches.html +0 -12
- data/ext/libmspack/doc/html/search/search.css +0 -271
- data/ext/libmspack/doc/html/search/search.js +0 -791
- data/ext/libmspack/doc/html/search/search_l.png +0 -0
- data/ext/libmspack/doc/html/search/search_m.png +0 -0
- data/ext/libmspack/doc/html/search/search_r.png +0 -0
- data/ext/libmspack/doc/html/search/searchdata.js +0 -30
- data/ext/libmspack/doc/html/search/variables_0.html +0 -26
- data/ext/libmspack/doc/html/search/variables_0.js +0 -6
- data/ext/libmspack/doc/html/search/variables_1.html +0 -26
- data/ext/libmspack/doc/html/search/variables_1.js +0 -5
- data/ext/libmspack/doc/html/search/variables_10.html +0 -26
- data/ext/libmspack/doc/html/search/variables_10.js +0 -8
- data/ext/libmspack/doc/html/search/variables_11.html +0 -26
- data/ext/libmspack/doc/html/search/variables_11.js +0 -4
- data/ext/libmspack/doc/html/search/variables_12.html +0 -26
- data/ext/libmspack/doc/html/search/variables_12.js +0 -4
- data/ext/libmspack/doc/html/search/variables_13.html +0 -26
- data/ext/libmspack/doc/html/search/variables_13.js +0 -4
- data/ext/libmspack/doc/html/search/variables_2.html +0 -26
- data/ext/libmspack/doc/html/search/variables_2.js +0 -14
- data/ext/libmspack/doc/html/search/variables_3.html +0 -26
- data/ext/libmspack/doc/html/search/variables_3.js +0 -13
- data/ext/libmspack/doc/html/search/variables_4.html +0 -26
- data/ext/libmspack/doc/html/search/variables_4.js +0 -6
- data/ext/libmspack/doc/html/search/variables_5.html +0 -26
- data/ext/libmspack/doc/html/search/variables_5.js +0 -13
- data/ext/libmspack/doc/html/search/variables_6.html +0 -26
- data/ext/libmspack/doc/html/search/variables_6.js +0 -4
- data/ext/libmspack/doc/html/search/variables_7.html +0 -26
- data/ext/libmspack/doc/html/search/variables_7.js +0 -5
- data/ext/libmspack/doc/html/search/variables_8.html +0 -26
- data/ext/libmspack/doc/html/search/variables_8.js +0 -5
- data/ext/libmspack/doc/html/search/variables_9.html +0 -26
- data/ext/libmspack/doc/html/search/variables_9.js +0 -7
- data/ext/libmspack/doc/html/search/variables_a.html +0 -26
- data/ext/libmspack/doc/html/search/variables_a.js +0 -5
- data/ext/libmspack/doc/html/search/variables_b.html +0 -26
- data/ext/libmspack/doc/html/search/variables_b.js +0 -10
- data/ext/libmspack/doc/html/search/variables_c.html +0 -26
- data/ext/libmspack/doc/html/search/variables_c.js +0 -5
- data/ext/libmspack/doc/html/search/variables_d.html +0 -26
- data/ext/libmspack/doc/html/search/variables_d.js +0 -7
- data/ext/libmspack/doc/html/search/variables_e.html +0 -26
- data/ext/libmspack/doc/html/search/variables_e.js +0 -5
- data/ext/libmspack/doc/html/search/variables_f.html +0 -26
- data/ext/libmspack/doc/html/search/variables_f.js +0 -15
- data/ext/libmspack/doc/html/splitbar.png +0 -0
- data/ext/libmspack/doc/html/structmscab__compressor.html +0 -106
- data/ext/libmspack/doc/html/structmscab__decompressor.html +0 -361
- data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.map +0 -5
- data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmscabd__cabinet.html +0 -418
- data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.map +0 -4
- data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmscabd__file.html +0 -337
- data/ext/libmspack/doc/html/structmscabd__file__coll__graph.map +0 -3
- data/ext/libmspack/doc/html/structmscabd__file__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmscabd__file__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmscabd__folder.html +0 -159
- data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.map +0 -2
- data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschm__compressor.html +0 -226
- data/ext/libmspack/doc/html/structmschm__decompressor.html +0 -299
- data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.map +0 -7
- data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschmc__file.html +0 -169
- data/ext/libmspack/doc/html/structmschmd__file.html +0 -198
- data/ext/libmspack/doc/html/structmschmd__file__coll__graph.map +0 -6
- data/ext/libmspack/doc/html/structmschmd__file__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschmd__file__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschmd__header.html +0 -458
- data/ext/libmspack/doc/html/structmschmd__header__coll__graph.map +0 -6
- data/ext/libmspack/doc/html/structmschmd__header__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschmd__header__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschmd__sec__mscompressed.html +0 -198
- data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.map +0 -6
- data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschmd__sec__uncompressed.html +0 -140
- data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.map +0 -6
- data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschmd__section.html +0 -142
- data/ext/libmspack/doc/html/structmschmd__section__coll__graph.map +0 -6
- data/ext/libmspack/doc/html/structmschmd__section__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschmd__section__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmshlp__compressor.html +0 -106
- data/ext/libmspack/doc/html/structmshlp__decompressor.html +0 -106
- data/ext/libmspack/doc/html/structmskwaj__compressor.html +0 -243
- data/ext/libmspack/doc/html/structmskwaj__decompressor.html +0 -245
- data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.map +0 -3
- data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmskwajd__header.html +0 -225
- data/ext/libmspack/doc/html/structmslit__compressor.html +0 -106
- data/ext/libmspack/doc/html/structmslit__decompressor.html +0 -106
- data/ext/libmspack/doc/html/structmsoab__compressor.html +0 -151
- data/ext/libmspack/doc/html/structmsoab__decompressor.html +0 -184
- data/ext/libmspack/doc/html/structmspack__file.html +0 -107
- data/ext/libmspack/doc/html/structmspack__system.html +0 -404
- data/ext/libmspack/doc/html/structmspack__system__coll__graph.map +0 -3
- data/ext/libmspack/doc/html/structmspack__system__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmspack__system__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmsszdd__compressor.html +0 -186
- data/ext/libmspack/doc/html/structmsszdd__decompressor.html +0 -246
- data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.map +0 -3
- data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmsszddd__header.html +0 -149
- data/ext/libmspack/doc/html/sync_off.png +0 -0
- data/ext/libmspack/doc/html/sync_on.png +0 -0
- data/ext/libmspack/doc/html/szdd_kwaj_format.html +0 -331
- data/ext/libmspack/doc/html/tab_a.png +0 -0
- data/ext/libmspack/doc/html/tab_b.png +0 -0
- data/ext/libmspack/doc/html/tab_h.png +0 -0
- data/ext/libmspack/doc/html/tab_s.png +0 -0
- data/ext/libmspack/doc/html/tabs.css +0 -1
- data/ext/libmspack/doc/szdd_kwaj_format.html +0 -331
- data/ext/libmspack/examples/cabd_memory.c +0 -179
- data/ext/libmspack/examples/cabrip.c +0 -85
- data/ext/libmspack/examples/chmextract.c +0 -121
- data/ext/libmspack/examples/msexpand.c +0 -48
- data/ext/libmspack/examples/multifh.c +0 -435
- data/ext/libmspack/examples/oabextract.c +0 -41
- data/ext/libmspack/test/cabd_md5.c +0 -161
- data/ext/libmspack/test/cabd_test.c +0 -468
- data/ext/libmspack/test/chmd_find.c +0 -95
- data/ext/libmspack/test/chmd_md5.c +0 -67
- data/ext/libmspack/test/chmd_order.c +0 -144
- data/ext/libmspack/test/chmd_test.c +0 -134
- data/ext/libmspack/test/chminfo.c +0 -285
- data/ext/libmspack/test/error.h +0 -22
- data/ext/libmspack/test/kwajd_test.c +0 -119
- data/ext/libmspack/test/md5.c +0 -450
- data/ext/libmspack/test/md5.h +0 -166
- data/ext/libmspack/test/md5_fh.h +0 -123
- data/ext/libmspack/test/test_files/cabd/1.pl +0 -84
- data/ext/libmspack/test/test_files/cabd/2.pl +0 -75
- data/ext/libmspack/test/test_files/cabd/bad_folderindex.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/bad_nofiles.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/bad_nofolders.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/bad_signature.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/cve-2010-2800-mszip-infinite-loop.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/cve-2014-9556-qtm-infinite-loop.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/cve-2014-9732-folders-segfault.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/cve-2015-4470-mszip-over-read.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/cve-2015-4471-lzx-under-read.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/filename-read-violation-1.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/filename-read-violation-2.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/filename-read-violation-3.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/filename-read-violation-4.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/lzx-main-tree-no-lengths.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/lzx-premature-matches.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/mszip_lzx_qtm.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt1.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt2.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt3.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt4.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt5.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/normal_255c_filename.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/normal_2files_1folder.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/normal_2files_2folders.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_nodata.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_nofiles.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_nofolder.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortextheader.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortfile1.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortfile2.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortfolder.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortheader.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nofname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_noninfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nonname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nopinfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nopname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortfname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortninfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortnname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortpinfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortpname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/qtm-max-size-block.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_---.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_--D.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_-F-.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_-FD.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_H--.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_H-D.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_HF-.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_HFD.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/search_basic.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/search_tricky1.cab +0 -0
- data/ext/libmspack/test/test_files/chmd/blank-filenames.chm +0 -0
- data/ext/libmspack/test/test_files/chmd/cve-2015-4467-reset-interval-zero.chm.xor +0 -0
- data/ext/libmspack/test/test_files/chmd/cve-2015-4468-namelen-bounds.chm +0 -0
- data/ext/libmspack/test/test_files/chmd/cve-2015-4469-namelen-bounds.chm +0 -0
- data/ext/libmspack/test/test_files/chmd/cve-2015-4472-namelen-bounds.chm +0 -0
- data/ext/libmspack/test/test_files/chmd/cve-2017-6419-lzx-negative-spaninfo.chm +0 -0
- data/ext/libmspack/test/test_files/chmd/short-system-filenames.chm +0 -0
- data/ext/libmspack/test/test_files/kwajd/f00.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f01.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f02.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f03.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f04.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f10.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f11.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f12.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f13.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f14.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f20.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f21.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f22.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f23.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f24.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f30.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f31.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f32.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f33.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f34.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f40.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f41.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f42.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f43.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f44.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f50.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f51.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f52.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f53.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f54.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f60.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f61.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f62.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f63.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f64.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f70.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f71.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f72.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f73.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f74.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f80.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f81.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f82.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f83.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f84.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f90.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f91.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f92.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f93.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f94.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/make.pl +0 -17
- data/ext/x86_64-linux/liblibmspack.so +0 -0
- data/ext/x86_64-windows/libmspack.dll +0 -0
- data/ext/x86_64-windows-msys/libmspack.dll +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16c138dab348d9129240a06938de054771418d7895024ba81711623269f2c7fb
|
4
|
+
data.tar.gz: b2293589029da6c90b3a268a14df1db7198dc731f4600b2b532b389d04206c08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c81de40e4ea80a47c6624c475cf5830374a82de98637f6d2e3275be1a9fe1825e5b9a9b4c78a575bff9dd8b219118fcfa518077a4432f5508942ef05bcd02f72
|
7
|
+
data.tar.gz: 17f1372cc12cf52168fff3141275706f3920693339137211d6cf2a58ea3564e208ae3e72f534ec84f87f105ae1e0504c403aa5fb4780512c4892b3bc064550ff
|
@@ -0,0 +1,37 @@
|
|
1
|
+
name: rake
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
tags: [ v* ]
|
7
|
+
pull_request:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
rake:
|
11
|
+
name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
|
12
|
+
runs-on: ${{ matrix.os }}
|
13
|
+
continue-on-error: ${{ matrix.experimental }}
|
14
|
+
strategy:
|
15
|
+
fail-fast: false
|
16
|
+
matrix:
|
17
|
+
ruby: [ '3.1', '3.0', '2.7', '2.6', '2.5' ]
|
18
|
+
os: [ ubuntu-latest, macos-latest ] #, windows-latest
|
19
|
+
experimental: [ false ]
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v2
|
22
|
+
with:
|
23
|
+
submodules: true
|
24
|
+
|
25
|
+
- uses: ruby/setup-ruby@v1
|
26
|
+
with:
|
27
|
+
ruby-version: ${{ matrix.ruby }}
|
28
|
+
bundler-cache: true
|
29
|
+
|
30
|
+
- name: Download libmspack source
|
31
|
+
run: bundle exec rake libmspack
|
32
|
+
|
33
|
+
- name: Compile libmspack
|
34
|
+
run: bundle exec rake compile
|
35
|
+
|
36
|
+
- name: Run specs
|
37
|
+
run: bundle exec rake
|
data/.gitignore
CHANGED
data/Rakefile
CHANGED
@@ -15,7 +15,7 @@ end
|
|
15
15
|
desc 'Download libmspack source code'
|
16
16
|
task :libmspack do
|
17
17
|
require 'open-uri'
|
18
|
-
version = '0.
|
18
|
+
version = '0.11alpha'
|
19
19
|
source = "https://www.cabextract.org.uk/libmspack/libmspack-#{version}.tar.gz"
|
20
20
|
target = './ext/'
|
21
21
|
archivedir = 'libmspack-' + version
|
data/ext/Rakefile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'ffi-compiler/compile_task'
|
2
2
|
|
3
|
-
FFI::Compiler::CompileTask.new('
|
3
|
+
FFI::Compiler::CompileTask.new('mspack') do |compiler|
|
4
4
|
compiler.source_dirs = ['./libmspack/mspack/']
|
5
5
|
compiler.add_include_path(compiler.source_dirs.last)
|
6
6
|
compiler.add_define('_FILE_OFFSET_BITS', 64) # off_t must be 64-bit
|
data/ext/libmspack/ChangeLog
CHANGED
@@ -1,3 +1,148 @@
|
|
1
|
+
2023-02-03 Stuart Caie <kyzer@cabextract.org.uk>
|
2
|
+
|
3
|
+
* configure.ac: do AC_CHECK_SIZEOF([off_t]) test only after
|
4
|
+
AC_SYS_LARGEFILE, because the latter can alter the size of off_t.
|
5
|
+
|
6
|
+
* cabd_extract(): file->offset and file->length are unsigned ints,
|
7
|
+
both of them and their sum are checked to be <= CAB_LENGTHMAX. But
|
8
|
+
recent code stuffs file->length into an off_t and checks that instead.
|
9
|
+
On 32-bit architectures, if file->length > 2GiB then the off_t is
|
10
|
+
negative, evading the check. Ultimately this causes the decompression
|
11
|
+
functions to return MSPACK_ERR_ARGS as they already guard against
|
12
|
+
being asked to decompress a negative number of bytes.
|
13
|
+
|
14
|
+
2023-02-01 Stuart Caie <kyzer@cabextract.org.uk>
|
15
|
+
|
16
|
+
* readbits.h, readhuff.h, cabd.c, kwajd.c, lzxd.c, mszipd.c, qtmd.c:
|
17
|
+
ensure bit operations (including intermediary ones) are considered
|
18
|
+
as unsigned int, so UBSan is happy.
|
19
|
+
|
20
|
+
2023-01-31 Stuart Caie <kyzer@cabextract.org.uk>
|
21
|
+
|
22
|
+
* chmd.c: replace READ_ENCINT() macro with stricter read_encint()
|
23
|
+
function that reads no more than 63 or 31 bits so ENCINTs can never
|
24
|
+
be negative.
|
25
|
+
|
26
|
+
I'd prefer to use unsigned types, but off_t is used for file offsets
|
27
|
+
and lengths to match the environment's file I/O, so changing it is
|
28
|
+
tricky and would change the current public API.
|
29
|
+
|
30
|
+
Additionally, UBSan complains about shifting a 1 into a signed
|
31
|
+
type's MSB. https://www.cs.utah.edu/~regehr/papers/tosem15.pdf
|
32
|
+
notes that this is legal in ANSI C and "fairly benign (and well-
|
33
|
+
defined until C99)", but C99 made it undefined for no good reason.
|
34
|
+
I don't agree with this, but I don't want someone else using a C99
|
35
|
+
compiler to end up miscompiling the code.
|
36
|
+
|
37
|
+
* chmd_read_headers(): the CHM's internally declared file length is
|
38
|
+
compared against its actual file length and a warning is printed if
|
39
|
+
they don't match.
|
40
|
+
|
41
|
+
* chmd_extract(): files in the uncompressed section will print a
|
42
|
+
warning if their declared length goes beyond the declared end of the
|
43
|
+
CHM file. This may not match the actual CHM file length. You will
|
44
|
+
still get seek or read errors if a file's offset or length go beyond
|
45
|
+
the actual CHM file length.
|
46
|
+
|
47
|
+
Files in the compressed section will now cause a decrunch error if
|
48
|
+
their declared offset goes beyond the uncompressed length of the
|
49
|
+
section. If their offset is OK but their declared length goes beyond
|
50
|
+
the end, they will print a warning and then decompress as much as
|
51
|
+
possible before causing an error.
|
52
|
+
|
53
|
+
2023-01-02 Stuart Caie <kyzer@cabextract.org.uk>
|
54
|
+
|
55
|
+
* kwajd_extract(): KWAJ compression method #2 is the QBasic variant
|
56
|
+
of the SZDD compression algorithm. Thanks to Jason Summers for finding
|
57
|
+
this and providing examples.
|
58
|
+
|
59
|
+
2021-07-20 Stuart Caie <kyzer@cabextract.org.uk>
|
60
|
+
|
61
|
+
* lzxd_decompress(): simplified the code that decodes match_offset.
|
62
|
+
Thanks to Jasper St. Pierre for prompting me to look at it.
|
63
|
+
|
64
|
+
2020-12-30 Stuart Caie <kyzer@cabextract.org.uk>
|
65
|
+
|
66
|
+
* cabd_read_string(): libmspack no longer rejects CAB files with
|
67
|
+
empty previnfo/nextinfo strings. Thanks to Simon Tatham for the
|
68
|
+
patch, and for noting that WiX v4 currently generates such files.
|
69
|
+
|
70
|
+
2020-08-10 Stuart Caie <kyzer@cabextract.org.uk>
|
71
|
+
|
72
|
+
* lzxd_decompress(): merged the code for decoding aligned and
|
73
|
+
verbatim blocks, also verified there is no significant performance
|
74
|
+
penalty.
|
75
|
+
|
76
|
+
2020-08-07 Stuart Caie <kyzer@cabextract.org.uk>
|
77
|
+
|
78
|
+
* read_sys_file(): in a CHM file, the ControlData and ResetTable
|
79
|
+
files are loaded entirely into memory, regardless of file size.
|
80
|
+
This is not in the spirit of letting users control memory usage.
|
81
|
+
|
82
|
+
ControlData previously had to be at least 28 bytes (in case a new,
|
83
|
+
larger version of the file ever appeared), but is now rejected
|
84
|
+
if not exactly 28 bytes.
|
85
|
+
|
86
|
+
ResetTable can theoretically be huge; the longest LZX stream of
|
87
|
+
16 exabytes could have a 4 petabyte ResetTable. Practically, the
|
88
|
+
largest seen in the wild is 46 kilobytes (PHP manuals). I picked
|
89
|
+
an arbitrary upper limit of 1MB; please get in contact if you
|
90
|
+
know of any CHM files in the wild that are largest than this.
|
91
|
+
|
92
|
+
Thanks to seviezhou on Github for reporting this.
|
93
|
+
|
94
|
+
2020-04-13 Stuart Caie <kyzer@cabextract.org.uk>
|
95
|
+
|
96
|
+
* system.h: clear up libmspack's large file support.
|
97
|
+
|
98
|
+
To support large files, do this:
|
99
|
+
|
100
|
+
1. add any defines that your compiler needs to enable large file
|
101
|
+
support. It may be supported by default.
|
102
|
+
2. Define HAVE_FSEEKO if fseeko() and ftello() are available.
|
103
|
+
3. Define SIZEOF_OFF_T to the value of sizeof(off_t); it must be a
|
104
|
+
literal value because sizeof() can't be used in preprocessor tests.
|
105
|
+
|
106
|
+
libmspack uses the off_t datatype for all file offsets. If off_t is
|
107
|
+
less than 64 bits, libmspack will return an error when processing
|
108
|
+
CHM files with offsets beyond 2GB, and won't search for CAB headers
|
109
|
+
beyond 2GB into a file. In both cases, it prints a warning message
|
110
|
+
that the library doesn't support large files.
|
111
|
+
|
112
|
+
2020-04-13 Stuart Caie <kyzer@cabextract.org.uk>
|
113
|
+
|
114
|
+
* macros.h: new header for the D(), LD/LU and EndGet???() macros.
|
115
|
+
Use this instead of system.h.
|
116
|
+
|
117
|
+
* system.h: if MSPACK_NO_DEFAULT_SYSTEM is defined, define
|
118
|
+
inline versions of the only standard C functions used in
|
119
|
+
mspack (strlen, memcmp, memset), so that no standard C library
|
120
|
+
functions are needed at all.
|
121
|
+
|
122
|
+
2020-01-08 Stuart Caie <kyzer@cabextract.org.uk>
|
123
|
+
|
124
|
+
* lzxd_decompress(): do not apply the E8 transformation on the
|
125
|
+
32769th LZX frame! Thanks to Cezary Sliwa for discovering this
|
126
|
+
bug and providing an example cab file (which is
|
127
|
+
http://download.windowsupdate.com/d/msdownload/update/driver/
|
128
|
+
drvs/2019/11/016c7f3e-809d-4720-893b-
|
129
|
+
e0d74f10c39d_35e12507628e8dc8ae5fb3332835f4253d2dab23.cab)
|
130
|
+
|
131
|
+
* cabd_compare: use EXPAND.EXE instead of EXTRACT.EXE when
|
132
|
+
testing files in a directory called 'expand'. The example
|
133
|
+
cab file above is extracted wrongly by EXTRACT.EXE, but
|
134
|
+
correctly by EXPAND.EXE because they take different approaches
|
135
|
+
to E8 transformations:
|
136
|
+
|
137
|
+
- EXTRACT.EXE writes "E8E8E8E8E8E8' to the last 6 bytes of
|
138
|
+
frame, looks for E8 bytes up to the last 6 bytes, then restores
|
139
|
+
the last 6 bytes, leaving partial transforms of 1-3 bytes if
|
140
|
+
E8 byte is found near the end of the frame
|
141
|
+
|
142
|
+
- EXPAND.EXE looks for E8 bytes up to the last 10 bytes of a
|
143
|
+
frame, therefore the last 6 bytes are never altered and all
|
144
|
+
transforms are 4 bytes
|
145
|
+
|
1
146
|
2019-02-18 Stuart Caie <kyzer@cabextract.org.uk>
|
2
147
|
|
3
148
|
* chmd_read_headers(): a CHM file name beginning "::" but shorter
|
data/ext/libmspack/INSTALL
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
Installation Instructions
|
2
2
|
*************************
|
3
3
|
|
4
|
-
Copyright (C) 1994-1996, 1999-2002, 2004-
|
5
|
-
Foundation, Inc.
|
4
|
+
Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free
|
5
|
+
Software Foundation, Inc.
|
6
6
|
|
7
7
|
Copying and distribution of this file, with or without modification,
|
8
8
|
are permitted in any medium without royalty provided the copyright
|
@@ -225,7 +225,7 @@ order to use an ANSI C compiler:
|
|
225
225
|
|
226
226
|
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
227
227
|
|
228
|
-
HP-UX 'make' updates targets which have the same
|
228
|
+
HP-UX 'make' updates targets which have the same timestamps as their
|
229
229
|
prerequisites, which makes it generally unusable when shipped generated
|
230
230
|
files such as 'configure' are involved. Use GNU 'make' instead.
|
231
231
|
|
data/ext/libmspack/Makefile.am
CHANGED
@@ -5,7 +5,10 @@ TESTS = $(check_PROGRAMS)
|
|
5
5
|
|
6
6
|
ACLOCAL_AMFLAGS = -I m4
|
7
7
|
AM_CFLAGS =
|
8
|
-
# add "-DMSPACK_NO_DEFAULT_SYSTEM" to remove default mspack_system
|
8
|
+
# add "-DMSPACK_NO_DEFAULT_SYSTEM" to remove default mspack_system.
|
9
|
+
# however, note that many of the tests and examples provided DO rely on the
|
10
|
+
# default mspack_system and will fail without it -- any program with a call
|
11
|
+
# like "mspack_create_...(NULL)" expects a default mspack_system.
|
9
12
|
if GCC
|
10
13
|
AM_CFLAGS += -Wall -Wextra -Wno-unused-parameter -Wno-unused-result
|
11
14
|
endif
|
@@ -34,7 +37,7 @@ libmspack_la_SOURCES = mspack/mspack.h \
|
|
34
37
|
mspack/lzx.h mspack/lzxc.c mspack/lzxd.c \
|
35
38
|
mspack/mszip.h mspack/mszipc.c mspack/mszipd.c \
|
36
39
|
mspack/qtm.h mspack/qtmd.c \
|
37
|
-
mspack/readbits.h mspack/readhuff.h \
|
40
|
+
mspack/macros.h mspack/readbits.h mspack/readhuff.h \
|
38
41
|
mspack/lzss.h mspack/lzssd.c \
|
39
42
|
mspack/des.h mspack/sha.h \
|
40
43
|
mspack/crc32.c mspack/crc32.h
|
@@ -46,14 +49,14 @@ libmscabd_la_SOURCES = mspack/mspack.h \
|
|
46
49
|
mspack/lzx.h mspack/lzxd.c \
|
47
50
|
mspack/mszip.h mspack/mszipd.c \
|
48
51
|
mspack/qtm.h mspack/qtmd.c \
|
49
|
-
mspack/readbits.h mspack/readhuff.h
|
52
|
+
mspack/macros.h mspack/readbits.h mspack/readhuff.h
|
50
53
|
libmscabd_la_LDFLAGS = -export-symbols-regex '^mspack_'
|
51
54
|
|
52
55
|
libmschmd_la_SOURCES = mspack/mspack.h \
|
53
56
|
mspack/system.h mspack/system.c \
|
54
57
|
mspack/chm.h mspack/chmd.c \
|
55
58
|
mspack/lzx.h mspack/lzxd.c \
|
56
|
-
mspack/readbits.h mspack/readhuff.h
|
59
|
+
mspack/macros.h mspack/readbits.h mspack/readhuff.h
|
57
60
|
libmschmd_la_LDFLAGS = -export-symbols-regex '^mspack_'
|
58
61
|
|
59
62
|
examples_cabd_memory_SOURCES = examples/cabd_memory.c libmscabd.la
|