Hello community, here is the log from the commit of package cabextract for openSUSE:Factory checked in at 2019-09-21 17:29:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cabextract (Old) and /work/SRC/openSUSE:Factory/.cabextract.new.7948 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cabextract" Sat Sep 21 17:29:58 2019 rev:27 rq:732180 version:1.9.1 Changes: -------- --- /work/SRC/openSUSE:Factory/cabextract/cabextract.changes 2018-11-09 07:55:02.811668041 +0100 +++ /work/SRC/openSUSE:Factory/.cabextract.new.7948/cabextract.changes 2019-09-21 17:30:05.328736407 +0200 @@ -1,0 +2,11 @@ +Fri Sep 20 12:53:17 UTC 2019 - Martin Pluskal <mplus...@suse.com> + +- Modernise spec file + +------------------------------------------------------------------- +Fri Sep 20 11:46:44 UTC 2019 - Berthold Gunreben <azo...@opensuse.org> + +- Update to version 1.9.1 + * Rerelease of 1.9 with some packaging issues fixed + +------------------------------------------------------------------- Old: ---- cabextract-1.9.tar.gz New: ---- cabextract-1.9.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cabextract.spec ++++++ --- /var/tmp/diff_new_pack.FAPplO/_old 2019-09-21 17:30:07.560736433 +0200 +++ /var/tmp/diff_new_pack.FAPplO/_new 2019-09-21 17:30:07.596736433 +0200 @@ -1,7 +1,7 @@ # # spec file for package cabextract # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: cabextract -Version: 1.9 +Version: 1.9.1 Release: 0 Summary: A Program to Extract Microsoft Cabinet Files License: GPL-3.0-or-later @@ -25,7 +25,7 @@ URL: https://www.cabextract.org.uk/ Source: https://www.cabextract.org.uk/%{name}-%{version}.tar.gz BuildRequires: pkgconfig -BuildRequires: pkgconfig(libmspack) +BuildRequires: pkgconfig(libmspack) >= 0.8 %description Cabinet (.CAB) files are a form of archive, which Microsoft uses to @@ -33,12 +33,12 @@ cabextract can be used to unpack these files. %prep -%setup -q +%autosetup %build %configure\ --with-external-libmspack -make %{?_smp_mflags} +%make_build %install %make_install ++++++ cabextract-1.9.tar.gz -> cabextract-1.9.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/ChangeLog new/cabextract-1.9.1/ChangeLog --- old/cabextract-1.9/ChangeLog 2018-11-03 19:34:11.000000000 +0100 +++ new/cabextract-1.9.1/ChangeLog 2018-12-03 11:07:13.000000000 +0100 @@ -1,3 +1,26 @@ +2018-12-03 Stuart Caie <ky...@cabextract.org.uk> + + * test: support builddir being on a path that includes spaces + +2018-11-09 Stuart Caie <ky...@cabextract.org.uk> + + * test/case-utf8.test: Some environments (e.g. DJGPP) don't have a + UTF-8 locale, so won't pass the case.test testcase. Break it into + case-ascii.test and case-utf8.test, and skip the latter if + "cabextract -L" has no effect on non-ASCII filenames. Thanks to + Robert Riebisch for highlighting this. + +2018-11-08 Stuart Caie <ky...@cabextract.org.uk> + + * src/cabextract.c: make multiple attempts at iconv_open() with + different names for the UTF-8 encoding: "UTF-8", "UTF8" and "UTF_8". + + "UTF8" works with glibc, libiconv, newlib, Solaris libc and FreeBSD + libc, while "UTF-8" doesn't work with newlib. But if you have + libiconv >= 1.13, it removes "UTF8" support unless you define + USE_HPUX_ALIASES, or patch it back in (as Cygwin does). + Thanks to Ryan Schmidt for letting me know about this. + 2018-11-03 Stuart Caie <ky...@cabextract.org.uk> * test: use the autotools test system instead of a custom makefile. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/Makefile.am new/cabextract-1.9.1/Makefile.am --- old/cabextract-1.9/Makefile.am 2018-11-05 12:49:21.000000000 +0100 +++ new/cabextract-1.9.1/Makefile.am 2018-11-09 14:35:47.000000000 +0100 @@ -8,9 +8,10 @@ mspack/qtm.h mspack/qtmd.c \ mspack/readbits.h mspack/readhuff.h -TESTS = test/bugs.test test/case.test test/dirwalk-vulns.test \ - test/encoding.test test/mixed.test test/search.test \ - test/simple.test test/split.test test/utf8-stresstest.test +TESTS = test/bugs.test test/case-ascii.test test/case-utf8.test \ + test/dirwalk-vulns.test test/encoding.test \ + test/mixed.test test/search.test test/simple.test \ + test/split.test test/utf8-stresstest.test EXTRA_DIST = cabextract.spec \ doc/cabextract.1 doc/ja/cabextract.1 \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/Makefile.in new/cabextract-1.9.1/Makefile.in --- old/cabextract-1.9/Makefile.in 2018-11-05 18:24:55.000000000 +0100 +++ new/cabextract-1.9.1/Makefile.in 2019-03-04 01:39:54.000000000 +0100 @@ -532,9 +532,10 @@ mspack/qtm.h mspack/qtmd.c \ mspack/readbits.h mspack/readhuff.h -TESTS = test/bugs.test test/case.test test/dirwalk-vulns.test \ - test/encoding.test test/mixed.test test/search.test \ - test/simple.test test/split.test test/utf8-stresstest.test +TESTS = test/bugs.test test/case-ascii.test test/case-utf8.test \ + test/dirwalk-vulns.test test/encoding.test \ + test/mixed.test test/search.test test/simple.test \ + test/split.test test/utf8-stresstest.test EXTRA_DIST = cabextract.spec \ doc/cabextract.1 doc/ja/cabextract.1 \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/README new/cabextract-1.9.1/README --- old/cabextract-1.9/README 2018-11-04 01:09:53.000000000 +0100 +++ new/cabextract-1.9.1/README 2019-03-04 01:10:07.000000000 +0100 @@ -1,5 +1,5 @@ -cabextract 1.9 - a program to extract Microsoft Cabinet files. -(C) 2000-2018 Stuart Caie <ky...@cabextract.org.uk> +cabextract 1.9.1 - a program to extract Microsoft Cabinet files. +(C) 2000-2019 Stuart Caie <ky...@cabextract.org.uk> This is free software with ABSOLUTELY NO WARRANTY. Cabinet (.CAB) files are a form of archive, which Microsoft use to diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/cabextract.spec new/cabextract-1.9.1/cabextract.spec --- old/cabextract-1.9/cabextract.spec 2018-11-05 18:25:27.000000000 +0100 +++ new/cabextract-1.9.1/cabextract.spec 2019-03-04 01:40:36.000000000 +0100 @@ -1,6 +1,6 @@ Summary: A program to extract Microsoft Cabinet files Name: cabextract -Version: 1.9 +Version: 1.9.1 Release: 1 License: GPL Group: Applications/Archiving diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/config.h.in new/cabextract-1.9.1/config.h.in --- old/cabextract-1.9/config.h.in 2018-11-05 18:24:53.000000000 +0100 +++ new/cabextract-1.9.1/config.h.in 2019-03-04 01:39:52.000000000 +0100 @@ -1,5 +1,8 @@ /* config.h.in. Generated from configure.ac by autoheader. */ +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ @@ -147,6 +150,18 @@ /* Version number of package */ #undef VERSION +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/configure new/cabextract-1.9.1/configure --- old/cabextract-1.9/configure 2018-11-05 18:24:53.000000000 +0100 +++ new/cabextract-1.9.1/configure 2019-03-04 01:39:52.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for cabextract 1.9. +# Generated by GNU Autoconf 2.69 for cabextract 1.9.1. # # Report bugs to <ky...@cabextract.org.uk>. # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='cabextract' PACKAGE_TARNAME='cabextract' -PACKAGE_VERSION='1.9' -PACKAGE_STRING='cabextract 1.9' +PACKAGE_VERSION='1.9.1' +PACKAGE_STRING='cabextract 1.9.1' PACKAGE_BUGREPORT='ky...@cabextract.org.uk' PACKAGE_URL='' @@ -1308,7 +1308,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures cabextract 1.9 to adapt to many kinds of systems. +\`configure' configures cabextract 1.9.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1379,7 +1379,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of cabextract 1.9:";; + short | recursive ) echo "Configuration of cabextract 1.9.1:";; esac cat <<\_ACEOF @@ -1490,7 +1490,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -cabextract configure 1.9 +cabextract configure 1.9.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2142,7 +2142,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by cabextract $as_me 1.9, which was +It was created by cabextract $as_me 1.9.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3005,7 +3005,7 @@ # Define the identity of the package. PACKAGE='cabextract' - VERSION='1.9' + VERSION='1.9.1' cat >>confdefs.h <<_ACEOF @@ -4944,6 +4944,230 @@ ;; esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes; then : @@ -7279,6 +7503,7 @@ as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi + if test -z "${EXTERNAL_LIBMSPACK_TRUE}" && test -z "${EXTERNAL_LIBMSPACK_FALSE}"; then as_fn_error $? "conditional \"EXTERNAL_LIBMSPACK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -7680,7 +7905,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by cabextract $as_me 1.9, which was +This file was extended by cabextract $as_me 1.9.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7750,7 +7975,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -cabextract config.status 1.9 +cabextract config.status 1.9.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/configure.ac new/cabextract-1.9.1/configure.ac --- old/cabextract-1.9/configure.ac 2018-11-04 01:09:48.000000000 +0100 +++ new/cabextract-1.9.1/configure.ac 2019-03-04 01:10:21.000000000 +0100 @@ -1,7 +1,7 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([cabextract],[1.9],[ky...@cabextract.org.uk]) +AC_INIT([cabextract],[1.9.1],[ky...@cabextract.org.uk]) AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR([src/cabextract.c]) AC_CONFIG_HEADER([config.h]) @@ -18,6 +18,7 @@ # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE +AC_C_BIGENDIAN AC_TYPE_MODE_T AC_TYPE_OFF_T AC_TYPE_SIZE_T diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/mspack/ChangeLog new/cabextract-1.9.1/mspack/ChangeLog --- old/cabextract-1.9/mspack/ChangeLog 2018-11-04 01:04:14.000000000 +0100 +++ new/cabextract-1.9.1/mspack/ChangeLog 2019-02-18 21:01:59.000000000 +0100 @@ -1,3 +1,53 @@ +2019-02-18 Stuart Caie <ky...@cabextract.org.uk> + + * chmd_read_headers(): a CHM file name beginning "::" but shorter + than 33 bytes will lead to reading past the freshly-allocated name + buffer - checks for specific control filenames didn't take length + into account. Thanks to ADLab of Venustech for the report and + proof of concept. + +2019-02-18 Stuart Caie <ky...@cabextract.org.uk> + + * chmd_read_headers(): CHM files can declare their chunks are any + size up to 4GB, and libmspack will attempt to allocate that to + read the file. + + This is not a security issue; libmspack doesn't promise how much + memory it'll use to unpack files. You can set your own limits by + returning NULL in a custom mspack_system.alloc() implementation. + + However, it would be good to validate chunk size further. With no + offical specification, only empirical data is available. All files + created by hhc.exe have a chunk size of 4096 bytes, and this is + matched by all the files I've found in the wild, except for one + which has a chunk size of 8192 bytes, which was created by someone + developing a CHM file creator 15 years ago, and they appear to + have abandoned it, so it seems 4096 is a de-facto standard. + + I've changed the "chunk size is not a power of two" warning to + "chunk size is not 4096", and now only allow chunk sizes between + 22 and 8192 bytes. If you have CHM files with a larger chunk size, + please send them to me and I'll increase this upper limit. + + Thanks to ADLab of Venustech for the report. + +2019-02-18 Stuart Caie <ky...@cabextract.org.uk> + + * oabd.c: replaced one-shot copying of uncompressed blocks (which + requires allocating a buffer of the size declared in the header, + which can be 4GB) with a fixed-size buffer. The buffer size is + user-controllable with the new msoab_decompressor::set_param() + method (check you have version 2 of the OAB decompressor), and + also controls the input buffer used for OAB's LZX decompression. + + Reminder: compression formats can dictate how much memory is + needed to decompress them. If memory usage is a security concern + to you, write a custom mspack_system.alloc() that returns NULL + if "too much" memory is requested. Do not rely on libmspack adding + special heuristics to know not to request "too much". + + Thanks to ADLab of Venustech for the report. + 2018-11-03 Stuart Caie <ky...@cabextract.org.uk> * configure.ac, doc/Makefile.in, doc/Doxyfile.in: remove these diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/mspack/mspack.h new/cabextract-1.9.1/mspack/mspack.h --- old/cabextract-1.9/mspack/mspack.h 2018-11-05 12:53:09.000000000 +0100 +++ new/cabextract-1.9.1/mspack/mspack.h 2019-02-18 21:25:16.000000000 +0100 @@ -1,5 +1,5 @@ /* libmspack -- a library for working with Microsoft compression formats. - * (C) 2003-2016 Stuart Caie <ky...@cabextract.org.uk> + * (C) 2003-2019 Stuart Caie <ky...@cabextract.org.uk> * * libmspack is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License (LGPL) version 2.1 @@ -1554,7 +1554,7 @@ */ int (*set_param)(struct mschm_compressor *self, int param, - unsigned int value); + int value); /** * Returns the error code set by the most recently called method. @@ -1853,7 +1853,7 @@ */ int (*set_param)(struct msszdd_compressor *self, int param, - unsigned int value); + int value); /** * Returns the error code set by the most recently called method. @@ -2091,7 +2091,7 @@ */ int (*set_param)(struct mskwaj_compressor *self, int param, - unsigned int value); + int value); /** @@ -2353,8 +2353,31 @@ const char *input, const char *base, const char *output); + + /** + * Sets an OAB decompression engine parameter. Available only in OAB + * decompressor version 2 and above. + * + * - #MSOABD_PARAM_DECOMPBUF: How many bytes should be used as an input + * buffer by decompressors? The minimum value is 16. The default value + * is 4096. + * + * @param self a self-referential pointer to the msoab_decompressor + * instance being called + * @param param the parameter to set + * @param value the value to set the parameter to + * @return MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS if there + * is a problem with either parameter or value. + */ + int (*set_param)(struct msoab_decompressor *self, + int param, + int value); + }; +/** msoab_decompressor::set_param() parameter: size of decompression buffer */ +#define MSOABD_PARAM_DECOMPBUF (0) + #ifdef __cplusplus } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/mspack/system.c new/cabextract-1.9.1/mspack/system.c --- old/cabextract-1.9/mspack/system.c 2018-11-05 12:53:09.000000000 +0100 +++ new/cabextract-1.9.1/mspack/system.c 2019-02-18 17:26:17.000000000 +0100 @@ -31,12 +31,15 @@ * - added MSCABD_PARAM_SALVAGE */ case MSPACK_VER_MSCABD: + /* OAB decoder version 1 -> 2 changes: + * - added msoab_decompressor::set_param and MSOABD_PARAM_DECOMPBUF + */ + case MSPACK_VER_MSOABD: return 2; case MSPACK_VER_LIBRARY: case MSPACK_VER_SYSTEM: case MSPACK_VER_MSSZDDD: case MSPACK_VER_MSKWAJD: - case MSPACK_VER_MSOABD: return 1; case MSPACK_VER_MSCABC: case MSPACK_VER_MSCHMC: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/src/cabextract.c new/cabextract-1.9.1/src/cabextract.c --- old/cabextract-1.9/src/cabextract.c 2018-11-05 12:51:19.000000000 +0100 +++ new/cabextract-1.9.1/src/cabextract.c 2019-03-04 01:38:37.000000000 +0100 @@ -1,5 +1,5 @@ /* cabextract - a program to extract Microsoft Cabinet files - * (C) 2000-2018 Stuart Caie <ky...@cabextract.org.uk> + * (C) 2000-2019 Stuart Caie <ky...@cabextract.org.uk> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -203,6 +203,13 @@ int main(int argc, char *argv[]) { int i, err; + /* names for the UTF-8 charset recognised by different iconv_open()s */ + char *utf8_names[] = { + "UTF-8", /* glibc, libiconv, FreeBSD, Solaris, not newlib or HPUX */ + "UTF8", /* glibc, libiconv (< 1.13), newlib, HPUX */ + "UTF_8", /* newlib, Solaris */ + }; + /* attempt to set a UTF8-based locale, so that tolower()/towlower() * in create_output_name() lowercase more than just A-Z in ASCII. * @@ -259,7 +266,7 @@ " -e --encoding assume non-UTF8 filenames have the given encoding\n" #endif " -d --directory extract all files to the given directory\n\n" - "cabextract %s (C) 2000-2018 Stuart Caie <ky...@cabextract.org.uk>\n" + "cabextract %s (C) 2000-2019 Stuart Caie <ky...@cabextract.org.uk>\n" "This is free software with ABSOLUTELY NO WARRANTY.\n", VERSION); return EXIT_FAILURE; @@ -323,15 +330,18 @@ cabd->set_param(cabd, MSCABD_PARAM_SALVAGE, args.fix); #if HAVE_ICONV - /* set up converter for given encoding */ - if (args.encoding) { - if ((converter = iconv_open("UTF8", args.encoding)) == (iconv_t) -1) { - converter = NULL; - fprintf(stderr, "FATAL ERROR: encoding '%s' is not recognised\n", - args.encoding); - return EXIT_FAILURE; - } + /* set up converter from given encoding to UTF-8 */ + if (args.encoding) { + for (i = 0; i < (sizeof(utf8_names)/sizeof(*utf8_names)); i++) { + converter = iconv_open(utf8_names[i], args.encoding); + if (converter != (iconv_t) -1) break; + } + if (converter == (iconv_t) -1) { + fprintf(stderr, "FATAL ERROR: encoding '%s' is not recognised\n", + args.encoding); + return EXIT_FAILURE; } + } #endif /* process cabinets */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/bugs.test new/cabextract-1.9.1/test/bugs.test --- old/cabextract-1.9/test/bugs.test 2018-11-03 20:23:30.000000000 +0100 +++ new/cabextract-1.9.1/test/bugs.test 2018-12-03 11:05:14.000000000 +0100 @@ -2,7 +2,7 @@ # test that known crash bugs remain fixed . test/testcase -$cabextract -t $test_files/bugs/*.cab +"$cabextract" -t bugs/*.cab # fail if exit code indicates a crash (SIGBUS, SIGSEGV, etc.) test $? -le 1 Binary files old/cabextract-1.9/test/cabs/case-ascii.cab and new/cabextract-1.9.1/test/cabs/case-ascii.cab differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/cabs/case-ascii.txt new/cabextract-1.9.1/test/cabs/case-ascii.txt --- old/cabextract-1.9/test/cabs/case-ascii.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/cabextract-1.9.1/test/cabs/case-ascii.txt 2018-11-09 14:31:50.000000000 +0100 @@ -0,0 +1,3 @@ +# test that cabextract can lowercase ASCII filenames +ascii\upper\ABCDEFGHIJKLMNOPQRSTUVWXYZ +ascii\lower\abcdefghijklmnopqrstuvwxyz Binary files old/cabextract-1.9/test/cabs/case-utf8.cab and new/cabextract-1.9.1/test/cabs/case-utf8.cab differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/cabs/case-utf8.txt new/cabextract-1.9.1/test/cabs/case-utf8.txt --- old/cabextract-1.9/test/cabs/case-utf8.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/cabextract-1.9.1/test/cabs/case-utf8.txt 2018-11-09 14:31:37.000000000 +0100 @@ -0,0 +1,7 @@ +# test that cabextract can lowercase UTF-8 filenames +latin1\upper\ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ +latin1\lower\àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ +greek\upper\ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ +greek\lower\αβγδεζηθικλμνξοπρςστυφχψ +cyrillic\upper\АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ +cyrillic\lower\абвгдежзийклмнопрстуфхцчшщъыьэюя Binary files old/cabextract-1.9/test/cabs/case.cab and new/cabextract-1.9.1/test/cabs/case.cab differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/cabs/case.txt new/cabextract-1.9.1/test/cabs/case.txt --- old/cabextract-1.9/test/cabs/case.txt 2018-07-18 21:00:09.000000000 +0200 +++ new/cabextract-1.9.1/test/cabs/case.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,9 +0,0 @@ -# test that cabextract can lowercase ASCII and UTF-8 filenames -ascii\upper\ABCDEFGHIJKLMNOPQRSTUVWXYZ -ascii\lower\abcdefghijklmnopqrstuvwxyz -latin1\upper\ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ -latin1\lower\àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ -greek\upper\ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ -greek\lower\αβγδεζηθικλμνξοπρςστυφχψ -cyrillic\upper\АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ -cyrillic\lower\абвгдежзийклмнопрстуфхцчшщъыьэюя diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/cabs/filename-cabs.sh new/cabextract-1.9.1/test/cabs/filename-cabs.sh --- old/cabextract-1.9/test/cabs/filename-cabs.sh 2018-11-03 19:30:25.000000000 +0100 +++ new/cabextract-1.9.1/test/cabs/filename-cabs.sh 2018-11-09 14:31:09.000000000 +0100 @@ -1,5 +1,6 @@ #!/bin/sh -./filenames.pl case.txt >case.cab +./filenames.pl case-ascii.txt >case-ascii.cab +./filenames.pl case-utf8.txt >case-utf8.cab ./filenames.pl dirwalk-vulns.txt >dirwalk-vulns.cab FORCE_CODEPAGE=1 ./filenames.pl encoding-koi8.txt >encoding-koi8.cab FORCE_CODEPAGE=1 ./filenames.pl encoding-latin1.txt >encoding-latin1.cab diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/case-ascii.test new/cabextract-1.9.1/test/case-ascii.test --- old/cabextract-1.9/test/case-ascii.test 1970-01-01 01:00:00.000000000 +0100 +++ new/cabextract-1.9.1/test/case-ascii.test 2018-12-03 11:05:14.000000000 +0100 @@ -0,0 +1,49 @@ +#!/bin/sh +# test cabextract --lowercase and --directory options +. test/testcase + +"$cabextract" -l cabs/case-ascii.cab >$actual +compare_with <<'EOF' +Viewing cabinet: cabs/case-ascii.cab + File size | Date Time | Name +-----------+---------------------+------------- + 0 | 12.03.1997 11:13:52 | ascii/upper/ABCDEFGHIJKLMNOPQRSTUVWXYZ + 0 | 12.03.1997 11:13:52 | ascii/lower/abcdefghijklmnopqrstuvwxyz + +All done, no errors. +EOF + +"$cabextract" -L -l cabs/case-ascii.cab >$actual +compare_with <<'EOF' +Viewing cabinet: cabs/case-ascii.cab + File size | Date Time | Name +-----------+---------------------+------------- + 0 | 12.03.1997 11:13:52 | ascii/upper/abcdefghijklmnopqrstuvwxyz + 0 | 12.03.1997 11:13:52 | ascii/lower/abcdefghijklmnopqrstuvwxyz + +All done, no errors. +EOF + +"$cabextract" -d DIR/PATH -l cabs/case-ascii.cab >$actual +compare_with <<'EOF' +Viewing cabinet: cabs/case-ascii.cab + File size | Date Time | Name +-----------+---------------------+------------- + 0 | 12.03.1997 11:13:52 | DIR/PATH/ascii/upper/ABCDEFGHIJKLMNOPQRSTUVWXYZ + 0 | 12.03.1997 11:13:52 | DIR/PATH/ascii/lower/abcdefghijklmnopqrstuvwxyz + +All done, no errors. +EOF + +"$cabextract" -d DIR/PATH -L -l cabs/case-ascii.cab >$actual +compare_with <<'EOF' +Viewing cabinet: cabs/case-ascii.cab + File size | Date Time | Name +-----------+---------------------+------------- + 0 | 12.03.1997 11:13:52 | DIR/PATH/ascii/upper/abcdefghijklmnopqrstuvwxyz + 0 | 12.03.1997 11:13:52 | DIR/PATH/ascii/lower/abcdefghijklmnopqrstuvwxyz + +All done, no errors. +EOF + +read status < $status && test "x$status" = xsuccess diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/case-utf8.test new/cabextract-1.9.1/test/case-utf8.test --- old/cabextract-1.9/test/case-utf8.test 1970-01-01 01:00:00.000000000 +0100 +++ new/cabextract-1.9.1/test/case-utf8.test 2018-12-03 11:05:14.000000000 +0100 @@ -0,0 +1,73 @@ +#!/bin/sh +# test cabextract --lowercase and --directory options +. test/testcase + +# skip test if environment has no UTF-8 locale, where +# cabextract can't lowercase non-ASCII characters +"$cabextract" -l cabs/case-utf8.cab >$expected +"$cabextract" -L -l cabs/case-utf8.cab >$actual +if diff $expected $actual >/dev/null; then + exit 77 +fi + +"$cabextract" -l cabs/case-utf8.cab >$actual +compare_with <<'EOF' +Viewing cabinet: cabs/case-utf8.cab + File size | Date Time | Name +-----------+---------------------+------------- + 0 | 12.03.1997 11:13:52 | latin1/upper/ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ + 0 | 12.03.1997 11:13:52 | latin1/lower/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ + 0 | 12.03.1997 11:13:52 | greek/upper/ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ + 0 | 12.03.1997 11:13:52 | greek/lower/αβγδεζηθικλμνξοπρςστυφχψ + 0 | 12.03.1997 11:13:52 | cyrillic/upper/АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ + 0 | 12.03.1997 11:13:52 | cyrillic/lower/абвгдежзийклмнопрстуфхцчшщъыьэюя + +All done, no errors. +EOF + +"$cabextract" -L -l cabs/case-utf8.cab >$actual +compare_with <<'EOF' +Viewing cabinet: cabs/case-utf8.cab + File size | Date Time | Name +-----------+---------------------+------------- + 0 | 12.03.1997 11:13:52 | latin1/upper/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ + 0 | 12.03.1997 11:13:52 | latin1/lower/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ + 0 | 12.03.1997 11:13:52 | greek/upper/αβγδεζηθικλμνξοπρστυφχψω + 0 | 12.03.1997 11:13:52 | greek/lower/αβγδεζηθικλμνξοπρςστυφχψ + 0 | 12.03.1997 11:13:52 | cyrillic/upper/абвгдежзийклмнопрстуфхцчшщъыьэюя + 0 | 12.03.1997 11:13:52 | cyrillic/lower/абвгдежзийклмнопрстуфхцчшщъыьэюя + +All done, no errors. +EOF + +"$cabextract" -d DIR/PATH -l cabs/case-utf8.cab >$actual +compare_with <<'EOF' +Viewing cabinet: cabs/case-utf8.cab + File size | Date Time | Name +-----------+---------------------+------------- + 0 | 12.03.1997 11:13:52 | DIR/PATH/latin1/upper/ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ + 0 | 12.03.1997 11:13:52 | DIR/PATH/latin1/lower/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ + 0 | 12.03.1997 11:13:52 | DIR/PATH/greek/upper/ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ + 0 | 12.03.1997 11:13:52 | DIR/PATH/greek/lower/αβγδεζηθικλμνξοπρςστυφχψ + 0 | 12.03.1997 11:13:52 | DIR/PATH/cyrillic/upper/АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ + 0 | 12.03.1997 11:13:52 | DIR/PATH/cyrillic/lower/абвгдежзийклмнопрстуфхцчшщъыьэюя + +All done, no errors. +EOF + +"$cabextract" -d DIR/PATH -L -l cabs/case-utf8.cab >$actual +compare_with <<'EOF' +Viewing cabinet: cabs/case-utf8.cab + File size | Date Time | Name +-----------+---------------------+------------- + 0 | 12.03.1997 11:13:52 | DIR/PATH/latin1/upper/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ + 0 | 12.03.1997 11:13:52 | DIR/PATH/latin1/lower/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ + 0 | 12.03.1997 11:13:52 | DIR/PATH/greek/upper/αβγδεζηθικλμνξοπρστυφχψω + 0 | 12.03.1997 11:13:52 | DIR/PATH/greek/lower/αβγδεζηθικλμνξοπρςστυφχψ + 0 | 12.03.1997 11:13:52 | DIR/PATH/cyrillic/upper/абвгдежзийклмнопрстуфхцчшщъыьэюя + 0 | 12.03.1997 11:13:52 | DIR/PATH/cyrillic/lower/абвгдежзийклмнопрстуфхцчшщъыьэюя + +All done, no errors. +EOF + +read status < $status && test "x$status" = xsuccess diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/case.test new/cabextract-1.9.1/test/case.test --- old/cabextract-1.9/test/case.test 2018-11-03 20:27:12.000000000 +0100 +++ new/cabextract-1.9.1/test/case.test 1970-01-01 01:00:00.000000000 +0100 @@ -1,73 +0,0 @@ -#!/bin/sh -# test cabextract --lowercase and --directory options -. test/testcase - -$cabextract -l cabs/case.cab >$actual -compare_with <<'EOF' -Viewing cabinet: cabs/case.cab - File size | Date Time | Name ------------+---------------------+------------- - 0 | 12.03.1997 11:13:52 | ascii/upper/ABCDEFGHIJKLMNOPQRSTUVWXYZ - 0 | 12.03.1997 11:13:52 | ascii/lower/abcdefghijklmnopqrstuvwxyz - 0 | 12.03.1997 11:13:52 | latin1/upper/ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ - 0 | 12.03.1997 11:13:52 | latin1/lower/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ - 0 | 12.03.1997 11:13:52 | greek/upper/ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ - 0 | 12.03.1997 11:13:52 | greek/lower/αβγδεζηθικλμνξοπρςστυφχψ - 0 | 12.03.1997 11:13:52 | cyrillic/upper/АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ - 0 | 12.03.1997 11:13:52 | cyrillic/lower/абвгдежзийклмнопрстуфхцчшщъыьэюя - -All done, no errors. -EOF - -$cabextract -L -l cabs/case.cab >$actual -compare_with <<'EOF' -Viewing cabinet: cabs/case.cab - File size | Date Time | Name ------------+---------------------+------------- - 0 | 12.03.1997 11:13:52 | ascii/upper/abcdefghijklmnopqrstuvwxyz - 0 | 12.03.1997 11:13:52 | ascii/lower/abcdefghijklmnopqrstuvwxyz - 0 | 12.03.1997 11:13:52 | latin1/upper/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ - 0 | 12.03.1997 11:13:52 | latin1/lower/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ - 0 | 12.03.1997 11:13:52 | greek/upper/αβγδεζηθικλμνξοπρστυφχψω - 0 | 12.03.1997 11:13:52 | greek/lower/αβγδεζηθικλμνξοπρςστυφχψ - 0 | 12.03.1997 11:13:52 | cyrillic/upper/абвгдежзийклмнопрстуфхцчшщъыьэюя - 0 | 12.03.1997 11:13:52 | cyrillic/lower/абвгдежзийклмнопрстуфхцчшщъыьэюя - -All done, no errors. -EOF - -$cabextract -d DIR/PATH -l cabs/case.cab >$actual -compare_with <<'EOF' -Viewing cabinet: cabs/case.cab - File size | Date Time | Name ------------+---------------------+------------- - 0 | 12.03.1997 11:13:52 | DIR/PATH/ascii/upper/ABCDEFGHIJKLMNOPQRSTUVWXYZ - 0 | 12.03.1997 11:13:52 | DIR/PATH/ascii/lower/abcdefghijklmnopqrstuvwxyz - 0 | 12.03.1997 11:13:52 | DIR/PATH/latin1/upper/ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ - 0 | 12.03.1997 11:13:52 | DIR/PATH/latin1/lower/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ - 0 | 12.03.1997 11:13:52 | DIR/PATH/greek/upper/ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ - 0 | 12.03.1997 11:13:52 | DIR/PATH/greek/lower/αβγδεζηθικλμνξοπρςστυφχψ - 0 | 12.03.1997 11:13:52 | DIR/PATH/cyrillic/upper/АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ - 0 | 12.03.1997 11:13:52 | DIR/PATH/cyrillic/lower/абвгдежзийклмнопрстуфхцчшщъыьэюя - -All done, no errors. -EOF - -$cabextract -d DIR/PATH -L -l cabs/case.cab >$actual -compare_with <<'EOF' -Viewing cabinet: cabs/case.cab - File size | Date Time | Name ------------+---------------------+------------- - 0 | 12.03.1997 11:13:52 | DIR/PATH/ascii/upper/abcdefghijklmnopqrstuvwxyz - 0 | 12.03.1997 11:13:52 | DIR/PATH/ascii/lower/abcdefghijklmnopqrstuvwxyz - 0 | 12.03.1997 11:13:52 | DIR/PATH/latin1/upper/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ - 0 | 12.03.1997 11:13:52 | DIR/PATH/latin1/lower/àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ - 0 | 12.03.1997 11:13:52 | DIR/PATH/greek/upper/αβγδεζηθικλμνξοπρστυφχψω - 0 | 12.03.1997 11:13:52 | DIR/PATH/greek/lower/αβγδεζηθικλμνξοπρςστυφχψ - 0 | 12.03.1997 11:13:52 | DIR/PATH/cyrillic/upper/абвгдежзийклмнопрстуфхцчшщъыьэюя - 0 | 12.03.1997 11:13:52 | DIR/PATH/cyrillic/lower/абвгдежзийклмнопрстуфхцчшщъыьэюя - -All done, no errors. -EOF - -read status < $status && test "x$status" = xsuccess diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/dirwalk-vulns.test new/cabextract-1.9.1/test/dirwalk-vulns.test --- old/cabextract-1.9/test/dirwalk-vulns.test 2018-11-03 20:31:02.000000000 +0100 +++ new/cabextract-1.9.1/test/dirwalk-vulns.test 2018-12-03 11:05:14.000000000 +0100 @@ -2,7 +2,7 @@ # test cabextract prevents directory path manipulation . test/testcase -$cabextract -l cabs/dirwalk-vulns.cab >$actual +"$cabextract" -l cabs/dirwalk-vulns.cab >$actual compare_with <<'EOF' Viewing cabinet: cabs/dirwalk-vulns.cab File size | Date Time | Name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/encoding.test new/cabextract-1.9.1/test/encoding.test --- old/cabextract-1.9/test/encoding.test 2018-11-05 11:39:40.000000000 +0100 +++ new/cabextract-1.9.1/test/encoding.test 2018-12-03 11:05:14.000000000 +0100 @@ -3,11 +3,11 @@ . test/testcase # skip test if cabextract has no --encoding option -if [ `$cabextract -h 2>&1 | grep -c encoding` -eq 0 ]; then +if [ `"$cabextract" -h 2>&1 | grep -c encoding` -eq 0 ]; then exit 77 fi -$cabextract -e koi8-ru -l cabs/encoding-koi8.cab >$actual +"$cabextract" -e koi8-ru -l cabs/encoding-koi8.cab >$actual compare_with <<'EOF' Viewing cabinet: cabs/encoding-koi8.cab File size | Date Time | Name @@ -19,7 +19,7 @@ All done, no errors. EOF -$cabextract -e iso-8859-1 -l cabs/encoding-latin1.cab >$actual +"$cabextract" -e iso-8859-1 -l cabs/encoding-latin1.cab >$actual compare_with <<'EOF' Viewing cabinet: cabs/encoding-latin1.cab File size | Date Time | Name @@ -31,7 +31,7 @@ All done, no errors. EOF -$cabextract -e sjis -l cabs/encoding-sjis.cab >$actual +"$cabextract" -e sjis -l cabs/encoding-sjis.cab >$actual compare_with <<'EOF' Viewing cabinet: cabs/encoding-sjis.cab File size | Date Time | Name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/mixed.test new/cabextract-1.9.1/test/mixed.test --- old/cabextract-1.9/test/mixed.test 2018-11-03 20:27:33.000000000 +0100 +++ new/cabextract-1.9.1/test/mixed.test 2018-12-03 11:05:14.000000000 +0100 @@ -2,7 +2,7 @@ # test cabextract --filter and --pipe options . test/testcase -$cabextract -p cabs/mixed.cab >$actual +"$cabextract" -p cabs/mixed.cab >$actual compare_with <<'EOF' If you can read this, the MSZIP decompressor is working! ----------------------------------------------------------------- @@ -11,19 +11,19 @@ If you can read this, the Quantum decompressor is working! EOF -$cabextract -p -F 'mszip.*' cabs/mixed.cab >$actual +"$cabextract" -p -F 'mszip.*' cabs/mixed.cab >$actual compare_with <<'EOF' If you can read this, the MSZIP decompressor is working! EOF -$cabextract -p -F '*zx*' cabs/mixed.cab >$actual +"$cabextract" -p -F '*zx*' cabs/mixed.cab >$actual compare_with <<'EOF' ----------------------------------------------------------------- If you can read this, the LZX decompressor is working! ----------------------------------------------------------------- EOF -$cabextract -p -F '*m.txt' cabs/mixed.cab >$actual +"$cabextract" -p -F '*m.txt' cabs/mixed.cab >$actual compare_with <<'EOF' If you can read this, the Quantum decompressor is working! EOF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/search.test new/cabextract-1.9.1/test/search.test --- old/cabextract-1.9/test/search.test 2018-11-03 20:27:37.000000000 +0100 +++ new/cabextract-1.9.1/test/search.test 2018-12-03 11:05:14.000000000 +0100 @@ -2,7 +2,7 @@ # test cabextract can find cabinets within files . test/testcase -$cabextract -l cabs/search.cab >$actual +"$cabextract" -l cabs/search.cab >$actual compare_with <<'EOF' Viewing cabinet: cabs/search.cab File size | Date Time | Name @@ -35,7 +35,7 @@ All done, no errors. EOF -$cabextract -t cabs/search.cab >$actual +"$cabextract" -t cabs/search.cab >$actual compare_with <<'EOF' Testing cabinet: cabs/search.cab hello.cab OK cabef68e0ded744846e41c05823a690c diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/simple.test new/cabextract-1.9.1/test/simple.test --- old/cabextract-1.9/test/simple.test 2018-11-03 20:27:42.000000000 +0100 +++ new/cabextract-1.9.1/test/simple.test 2018-12-03 11:05:14.000000000 +0100 @@ -2,7 +2,7 @@ # test cabextract gets the basics right (correct dates, filenames, checksums...) . test/testcase -$cabextract -l cabs/simple.cab >$actual +"$cabextract" -l cabs/simple.cab >$actual compare_with <<'EOF' Viewing cabinet: cabs/simple.cab File size | Date Time | Name @@ -13,7 +13,7 @@ All done, no errors. EOF -$cabextract -t cabs/simple.cab >$actual +"$cabextract" -t cabs/simple.cab >$actual compare_with <<'EOF' Testing cabinet: cabs/simple.cab hello.c OK c2535936b8908b1f8a28b7724a2c2045 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/split.test new/cabextract-1.9.1/test/split.test --- old/cabextract-1.9/test/split.test 2018-11-03 20:27:48.000000000 +0100 +++ new/cabextract-1.9.1/test/split.test 2018-12-03 11:05:14.000000000 +0100 @@ -2,7 +2,7 @@ # test cabextract can join up split cabinets, whichever you start with . test/testcase -$cabextract -t cabs/split-1.cab >$actual +"$cabextract" -t cabs/split-1.cab >$actual compare_with <<'EOF' cabs/split-1.cab: extends to Split-2.CAB (Split cabinet file 2/5) cabs/split-1.cab: extends to Split-3.CAB (Split cabinet file 3/5) @@ -19,7 +19,7 @@ All done, no errors. EOF -$cabextract -t cabs/split-2.cab >$actual +"$cabextract" -t cabs/split-2.cab >$actual compare_with <<'EOF' cabs/split-2.cab: extends backwards to Split-1.CAB (Split cabinet file 1/5) cabs/split-2.cab: extends to Split-3.CAB (Split cabinet file 3/5) @@ -36,7 +36,7 @@ All done, no errors. EOF -$cabextract -t cabs/split-3.cab >$actual +"$cabextract" -t cabs/split-3.cab >$actual compare_with <<'EOF' cabs/split-3.cab: extends backwards to Split-2.CAB (Split cabinet file 2/5) cabs/split-3.cab: extends backwards to Split-1.CAB (Split cabinet file 1/5) @@ -53,7 +53,7 @@ All done, no errors. EOF -$cabextract -t cabs/split-4.cab >$actual +"$cabextract" -t cabs/split-4.cab >$actual compare_with <<'EOF' cabs/split-4.cab: extends backwards to Split-3.CAB (Split cabinet file 3/5) cabs/split-4.cab: extends backwards to Split-2.CAB (Split cabinet file 2/5) @@ -70,7 +70,7 @@ All done, no errors. EOF -$cabextract -t cabs/split-5.cab >$actual +"$cabextract" -t cabs/split-5.cab >$actual compare_with <<'EOF' cabs/split-5.cab: extends backwards to Split-4.CAB (Split cabinet file 4/5) cabs/split-5.cab: extends backwards to Split-3.CAB (Split cabinet file 3/5) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/testcase.in new/cabextract-1.9.1/test/testcase.in --- old/cabextract-1.9/test/testcase.in 2018-11-03 20:41:01.000000000 +0100 +++ new/cabextract-1.9.1/test/testcase.in 2018-12-03 11:05:39.000000000 +0100 @@ -1,4 +1,4 @@ -cabextract=@abs_top_builddir@/cabextract@EXEEXT@ +cabextract="@abs_top_builddir@/cabextract@EXEEXT@" cd "@abs_srcdir@" status=`mktemp` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabextract-1.9/test/utf8-stresstest.test new/cabextract-1.9.1/test/utf8-stresstest.test --- old/cabextract-1.9/test/utf8-stresstest.test 2018-11-03 20:27:52.000000000 +0100 +++ new/cabextract-1.9.1/test/utf8-stresstest.test 2018-12-03 11:05:14.000000000 +0100 @@ -2,7 +2,7 @@ # test cabextract handles bad UTF-8 filenames . test/testcase -$cabextract -l cabs/utf8-stresstest.cab >$actual +"$cabextract" -l cabs/utf8-stresstest.cab >$actual compare_with <<'EOF' Viewing cabinet: cabs/utf8-stresstest.cab File size | Date Time | Name