Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libxls for openSUSE:Factory checked in at 2025-01-05 15:28:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libxls (Old) and /work/SRC/openSUSE:Factory/.libxls.new.1881 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libxls" Sun Jan 5 15:28:59 2025 rev:7 rq:1234626 version:1.6.3 Changes: -------- --- /work/SRC/openSUSE:Factory/libxls/libxls.changes 2022-05-17 17:24:49.231192029 +0200 +++ /work/SRC/openSUSE:Factory/.libxls.new.1881/libxls.changes 2025-01-05 15:29:12.836721889 +0100 @@ -1,0 +2,10 @@ +Thu Dec 26 20:34:32 UTC 2024 - Jan Engelhardt <jeng...@inai.de> + +- Update to release 1.6.3 + * Fix style record size check on big-endian systems + * Fix header include in C++ mode + * Fix buffer overflows when parsing style records + * Fix infinite loop with self-referencing sectors +- Delete 0001-Fixes-94-possible-null-ptr-deref.patch (merged) + +------------------------------------------------------------------- Old: ---- 0001-Fixes-94-possible-null-ptr-deref.patch libxls-1.6.2.tar.gz New: ---- _scmsync.obsinfo build.specials.obscpio libxls-1.6.3.tar.gz BETA DEBUG BEGIN: Old: * Fix infinite loop with self-referencing sectors - Delete 0001-Fixes-94-possible-null-ptr-deref.patch (merged) BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libxls.spec ++++++ --- /var/tmp/diff_new_pack.w5UPDV/_old 2025-01-05 15:29:13.320741797 +0100 +++ /var/tmp/diff_new_pack.w5UPDV/_new 2025-01-05 15:29:13.324741963 +0100 @@ -1,7 +1,7 @@ # # spec file for package libxls # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,14 +18,13 @@ Name: libxls %define lname libxlsreader8 -Version: 1.6.2 +Version: 1.6.3 Release: 0 Summary: Library for Parsing Excel (XLS) Files License: BSD-2-Clause Group: Development/Libraries/C and C++ URL: https://github.com/libxls/libxls Source: https://github.com/libxls/libxls/releases/download/v%version/libxls-%version.tar.gz -Patch1: 0001-Fixes-94-possible-null-ptr-deref.patch BuildRequires: pkg-config %description ++++++ _scmsync.obsinfo ++++++ mtime: 1735247335 commit: 23239e83c6b71cc8fd808bfe21fffcf044d31683d80eea40561877997408dad6 url: https://src.opensuse.org/clibs/libxls revision: master ++++++ libxls-1.6.2.tar.gz -> libxls-1.6.3.tar.gz ++++++ ++++ 32252 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/INSTALL new/libxls-1.6.3/INSTALL --- old/libxls-1.6.2/INSTALL 2018-12-19 17:32:04.000000000 +0100 +++ new/libxls-1.6.3/INSTALL 2024-06-22 13:04:09.000000000 +0200 @@ -14,7 +14,7 @@ * If you've cloned the git repository, instead of downloading a release, do this first: - ./bootstrap + ./autogen.sh MAINTENANCE @@ -27,7 +27,7 @@ * When you update configure.ac, or when there is an upgrade of autoconf/libtool versions, do this: - ./bootstrap + ./autogen.sh Then: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/README.md new/libxls-1.6.3/README.md --- old/libxls-1.6.2/README.md 2020-12-21 20:20:51.000000000 +0100 +++ new/libxls-1.6.3/README.md 2024-06-22 13:05:21.000000000 +0200 @@ -1,5 +1,4 @@ [](https://github.com/libxls/libxls/actions) -[](https://ci.appveyor.com/project/evanmiller/libxls-252ki) [](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:libxls) libxls - Read XLS files from C @@ -103,7 +102,7 @@ If you've cloned the git repository, you'll need to run this first: ``` -./bootstrap +./autogen.sh ``` That will generate all the supporting files. It assumes autotools is already @@ -117,3 +116,5 @@ * [Haskell](https://hackage.haskell.org/package/xls) * [R](https://readxl.tidyverse.org) * [Rust](https://github.com/evanmiller/rust-xls) +* [Go](https://github.com/godzie44/go-xls) +* [Crystal](https://github.com/mdwagner/xls.cr) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/compile new/libxls-1.6.3/compile --- old/libxls-1.6.2/compile 2019-06-12 17:22:33.000000000 +0200 +++ new/libxls-1.6.3/compile 2024-12-26 11:45:43.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2016-01-11.22; # UTC +scriptversion=2024-06-19.01; # UTC -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2024 Free Software Foundation, Inc. # Written by Tom Tromey <tro...@cygnus.com>. # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -53,7 +53,7 @@ MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -67,7 +67,7 @@ mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/*) + cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) @@ -143,7 +143,7 @@ # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in - *.o | *.[oO][bB][jJ]) + *.o | *.lo | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift @@ -248,14 +248,17 @@ right script to run: please start by reading the file 'INSTALL'. Report bugs to <bug-autom...@gnu.org>. +GNU Automake home page: <https://www.gnu.org/software/automake/>. +General help using GNU software: <https://www.gnu.org/gethelp/>. EOF exit $? ;; -v | --v*) - echo "compile $scriptversion" + echo "compile (GNU Automake) $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; @@ -340,7 +343,7 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/config.h.in new/libxls-1.6.3/config.h.in --- old/libxls-1.6.2/config.h.in 2021-01-04 05:30:36.000000000 +0100 +++ new/libxls-1.6.3/config.h.in 2024-12-26 11:45:43.000000000 +0100 @@ -12,24 +12,16 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H -/* Define to 1 if your system has a GNU libc compatible `malloc' function, and - to 0 otherwise. */ -#undef HAVE_MALLOC - -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if your system has a GNU libc compatible `realloc' function, - and to 0 otherwise. */ -#undef HAVE_REALLOC - /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H +/* Define to 1 if you have the <stdio.h> header file. */ +#undef HAVE_STDIO_H + /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H -/* Define to 1 if you have the `strdup' function. */ +/* Define to 1 if you have the 'strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the <strings.h> header file. */ @@ -50,7 +42,7 @@ /* Define to 1 if you have the <wchar.h> header file. */ #undef HAVE_WCHAR_H -/* Define to 1 if you have the `wcstombs_l' function. */ +/* Define to 1 if you have the 'wcstombs_l' function. */ #undef HAVE_WCSTOMBS_L /* Define to 1 if you have the <xlocale.h> header file. */ @@ -92,17 +84,13 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION -/* Define to 1 if you have the ANSI C header files. */ +/* Define to 1 if all of the C89 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION -/* Define to rpl_malloc if the replacement function should be used. */ -#undef malloc - -/* Define to rpl_realloc if the replacement function should be used. */ -#undef realloc - -/* Define to `unsigned int' if <sys/types.h> does not define. */ +/* Define as 'unsigned int' if <stddef.h> doesn't define. */ #undef size_t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/configure.ac new/libxls-1.6.3/configure.ac --- old/libxls-1.6.2/configure.ac 2021-01-04 05:28:43.000000000 +0100 +++ new/libxls-1.6.3/configure.ac 2024-12-26 11:43:17.000000000 +0100 @@ -1,9 +1,9 @@ -AC_INIT([libxls],[1.6.2],[https://github.com/libxls/libxls/issues], [libxls], [https://github.com/libxls/libxls]) +AC_INIT([libxls],[1.6.3],[https://github.com/libxls/libxls/issues],[libxls],[https://github.com/libxls/libxls]) AC_CONFIG_SRCDIR([test/test.c]) LIBXLS_MAJOR_VERSION=1 LIBXLS_MINOR_VERSION=6 -LIBXLS_MICRO_VERSION=2 +LIBXLS_MICRO_VERSION=3 VERSION=$LIBXLS_MAJOR_VERSION.$LIBXLS_MINOR_VERSION.$LIBXLS_MICRO_VERSION # if libxls ever goes to 2.0 you will need to change the following line to @@ -35,7 +35,6 @@ AC_PROG_INSTALL AC_PROG_CC -AC_PROG_CC_C99 AC_PROG_CXX AX_CXX_COMPILE_STDCXX_11([], [optional]) @@ -48,8 +47,6 @@ AC_CHECK_FUNCS([strdup wcstombs_l]) AC_CHECK_HEADERS([wchar.h xlocale.h]) -AC_FUNC_MALLOC -AC_FUNC_REALLOC AC_TYPE_SIZE_T AC_ARG_ENABLE([fuzz-testing], AS_HELP_STRING([--enable-fuzz-testing], ["Enable fuzz testing (requires Clang 6 or later)"]), [ @@ -73,6 +70,10 @@ [*mingw*|*cygwin*], [EXTRA_LDFLAGS="-no-undefined"], [EXTRA_LDFLAGS=""]) AC_SUBST([EXTRA_LDFLAGS]) +AS_CASE([$host], + [*mingw*], [CFLAGS="$CFLAGS -D_spawnv=spawnv"], + [CFLAGS="$CFLAGS"]) + AM_ICONV m4_ifdef([PKG_INSTALLDIR], [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/include/libxls/ole.h new/libxls-1.6.3/include/libxls/ole.h --- old/libxls-1.6.2/include/libxls/ole.h 2019-03-08 13:51:23.000000000 +0100 +++ new/libxls-1.6.3/include/libxls/ole.h 2024-12-26 11:42:11.000000000 +0100 @@ -36,12 +36,13 @@ #ifndef OLE_INCLUDE #define OLE_INCLUDE -#ifdef __cplusplus -#include <cstdio> // FILE * -#else -#include <stdio.h> // FILE * +#ifdef _MSC_VER +#include <BaseTsd.h> +typedef SSIZE_T ssize_t; #endif +#include <stdio.h> // FILE * + #include "../libxls/xlstypes.h" #if defined(_AIX) || defined(__sun) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/include/libxls/xlsstruct.h new/libxls-1.6.3/include/libxls/xlsstruct.h --- old/libxls-1.6.2/include/libxls/xlsstruct.h 2020-09-04 17:25:39.000000000 +0200 +++ new/libxls-1.6.3/include/libxls/xlsstruct.h 2022-01-06 14:08:12.000000000 +0100 @@ -42,6 +42,7 @@ #define XLS_RECORD_DEFINEDNAME 0x0018 #define XLS_RECORD_NOTE 0x001C #define XLS_RECORD_1904 0x0022 +#define XLS_RECORD_FILEPASS 0x002F #define XLS_RECORD_CONTINUE 0x003C #define XLS_RECORD_WINDOW1 0x003D #define XLS_RECORD_CODEPAGE 0x0042 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/include/libxls/xlstypes.h new/libxls-1.6.3/include/libxls/xlstypes.h --- old/libxls-1.6.2/include/libxls/xlstypes.h 2019-03-08 13:56:16.000000000 +0100 +++ new/libxls-1.6.3/include/libxls/xlstypes.h 2024-06-22 13:07:38.000000000 +0200 @@ -36,11 +36,7 @@ #ifndef XLS_TYPES_INC #define XLS_TYPES_INC -#ifdef __cplusplus -#include <cstdint> -#else #include <stdint.h> -#endif #include <sys/types.h> typedef unsigned char BYTE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/include/xls.h new/libxls-1.6.3/include/xls.h --- old/libxls-1.6.2/include/xls.h 2019-02-10 18:19:57.000000000 +0100 +++ new/libxls-1.6.3/include/xls.h 2022-12-18 15:04:30.000000000 +0100 @@ -49,7 +49,9 @@ LIBXLS_ERROR_SEEK, LIBXLS_ERROR_READ, LIBXLS_ERROR_PARSE, - LIBXLS_ERROR_MALLOC + LIBXLS_ERROR_MALLOC, + LIBXLS_ERROR_UNSUPPORTED_ENCRYPTION, + LIBXLS_ERROR_NULL_ARGUMENT } xls_error_t; const char* xls_getVersion(void); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/missing new/libxls-1.6.3/missing --- old/libxls-1.6.2/missing 2019-06-12 17:22:34.000000000 +0200 +++ new/libxls-1.6.3/missing 2024-12-26 11:45:43.000000000 +0100 @@ -1,9 +1,11 @@ #! /bin/sh -# Common wrapper for a few potentially missing GNU programs. +# Common wrapper for a few potentially missing GNU and other programs. -scriptversion=2016-01-11.22; # UTC +scriptversion=2024-06-07.14; # UTC -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# shellcheck disable=SC2006,SC2268 # we must support pre-POSIX shells + +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +19,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -54,18 +56,20 @@ -v, --version output version information and exit Supported PROGRAM values: - aclocal autoconf autoheader autom4te automake makeinfo - bison yacc flex lex help2man +aclocal autoconf autogen autoheader autom4te automake autoreconf +bison flex help2man lex makeinfo perl yacc Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. -Send bug reports to <bug-autom...@gnu.org>." +Report bugs to <bug-autom...@gnu.org>. +GNU Automake home page: <https://www.gnu.org/software/automake/>. +General help using GNU software: <https://www.gnu.org/gethelp/>." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" + echo "missing (GNU Automake) $scriptversion" exit $? ;; @@ -101,14 +105,14 @@ exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { case $1 in - aclocal|automake) + aclocal|automake|autoreconf) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" @@ -123,6 +127,9 @@ echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; + *) + : + ;; esac } @@ -137,48 +144,55 @@ printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + autoheader_deps="'acconfig.h'" + automake_deps="'Makefile.am'" + aclocal_deps="'acinclude.m4'" case $normalized_program in + aclocal*) + echo "You should only need it if you modified $aclocal_deps or" + echo "$configure_deps." + ;; autoconf*) - echo "You should only need it if you modified 'configure.ac'," - echo "or m4 files included by it." - program_details 'autoconf' + echo "You should only need it if you modified $configure_deps." + ;; + autogen*) + echo "You should only need it if you modified a '.def' or '.tpl' file." + echo "You may want to install the GNU AutoGen package:" + echo "<$gnu_software_URL/autogen/>" ;; autoheader*) - echo "You should only need it if you modified 'acconfig.h' or" + echo "You should only need it if you modified $autoheader_deps or" echo "$configure_deps." - program_details 'autoheader' ;; automake*) - echo "You should only need it if you modified 'Makefile.am' or" - echo "$configure_deps." - program_details 'automake' - ;; - aclocal*) - echo "You should only need it if you modified 'acinclude.m4' or" + echo "You should only need it if you modified $automake_deps or" echo "$configure_deps." - program_details 'aclocal' ;; - autom4te*) + autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." - program_details 'autom4te' + ;; + autoreconf*) + echo "You should only need it if you modified $aclocal_deps or" + echo "$automake_deps or $autoheader_deps or $automake_deps or" + echo "$configure_deps." ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; - lex*|flex*) - echo "You should only need it if you modified a '.l' file." - echo "You may want to install the Fast Lexical Analyzer package:" - echo "<$flex_URL>" - ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." @@ -189,6 +203,12 @@ echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; + perl*) + echo "You should only need it to run GNU Autoconf, GNU Automake, " + echo " assorted other tools, or if you modified a Perl source file." + echo "You may want to install the Perl 5 language interpreter:" + echo "<$perl_URL>" + ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" @@ -197,6 +217,7 @@ echo "case some other package contains this missing '$1' program." ;; esac + program_details "$normalized_program" } give_advice "$1" | sed -e '1s/^/WARNING: /' \ @@ -207,7 +228,7 @@ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/src/endian.c new/libxls-1.6.3/src/endian.c --- old/libxls-1.6.2/src/endian.c 2020-06-06 14:37:18.000000000 +0200 +++ new/libxls-1.6.3/src/endian.c 2024-06-21 12:47:39.000000000 +0200 @@ -35,7 +35,7 @@ #include "../include/libxls/endian.h" #include "../include/libxls/ole.h" -int xls_is_bigendian() +int xls_is_bigendian(void) { #if defined (__BIG_ENDIAN__) return 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/src/locale.c new/libxls-1.6.3/src/locale.c --- old/libxls-1.6.2/src/locale.c 2020-09-04 17:25:39.000000000 +0200 +++ new/libxls-1.6.3/src/locale.c 2024-06-21 12:47:39.000000000 +0200 @@ -32,7 +32,7 @@ #include <stdlib.h> #include "../include/libxls/locale.h" -xls_locale_t xls_createlocale() { +xls_locale_t xls_createlocale(void) { #if defined(_WIN32) || defined(WIN32) || defined(_WIN64) || defined(WIN64) || defined(WINDOWS) return _create_locale(LC_CTYPE, ".65001"); #else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/src/ole.c new/libxls-1.6.3/src/ole.c --- old/libxls-1.6.2/src/ole.c 2020-12-30 05:46:44.000000000 +0100 +++ new/libxls-1.6.3/src/ole.c 2024-12-26 11:43:44.000000000 +0100 @@ -741,6 +741,11 @@ sectorNum++; } } + if (sid == sector[posInSector]) { + if (xls_debug) fprintf(stderr, "Error: Loop detected in sector #%d\n", sid); + total_bytes_read = -1; + goto cleanup; + } sid = sector[posInSector]; //printf(" s[%d]=%d (0x%x)\n", posInSector, sid, sid); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/src/xls.c new/libxls-1.6.3/src/xls.c --- old/libxls-1.6.2/src/xls.c 2020-12-30 05:48:33.000000000 +0100 +++ new/libxls-1.6.3/src/xls.c 2024-06-22 13:07:38.000000000 +0200 @@ -133,7 +133,7 @@ pWB->sst.lastrt=0; pWB->sst.lastsz=0; - if (sst->num > (1<<24)) + if (sst->num > (1<<26)) // 64 MB return LIBXLS_ERROR_MALLOC; if (pWB->sst.string) @@ -390,8 +390,10 @@ } pWB->sheets.sheet = realloc(pWB->sheets.sheet,(pWB->sheets.count+1)*sizeof (struct st_sheet_data)); - if (pWB->sheets.sheet == NULL) + if (pWB->sheets.sheet == NULL) { + free(name); return LIBXLS_ERROR_MALLOC; + } pWB->sheets.sheet[pWB->sheets.count].name=name; pWB->sheets.sheet[pWB->sheets.count].filepos=filepos; @@ -798,7 +800,7 @@ return LIBXLS_OK; } -int xls_isRecordTooSmall(xlsWorkBook *pWB, BOF *bof1) { +int xls_isRecordTooSmall(xlsWorkBook *pWB, BOF *bof1, const BYTE* buf) { switch (bof1->id) { case XLS_RECORD_BOF: // BIFF5-8 return (bof1->size < 2 * sizeof(WORD)); @@ -820,6 +822,24 @@ return (bof1->size < offsetof(FONT, name)); case XLS_RECORD_FORMAT: return (bof1->size < offsetof(FORMAT, value)); + case XLS_RECORD_STYLE: + { + struct { + unsigned short idx; + unsigned char ident; + unsigned char lvl; + } *styl; + if(bof1->size < 2) { + return 1; + } + styl = (void *)buf; + if(xlsShortVal(styl->idx) & 0x8000) { + return bof1->size < 4; + } else { + if(bof1->size < 3) return 1; + return bof1->size < 3 + styl->ident; + } + } case XLS_RECORD_1904: return (bof1->size < sizeof(BYTE)); default: @@ -830,6 +850,8 @@ xls_error_t xls_parseWorkBook(xlsWorkBook* pWB) { + if(!pWB) return LIBXLS_ERROR_NULL_ARGUMENT; + BOF bof1 = { .id = 0, .size = 0 }; BOF bof2 = { .id = 0, .size = 0 }; BYTE* buf = NULL; @@ -865,7 +887,7 @@ } } - if (xls_isRecordTooSmall(pWB, &bof1)) { + if (xls_isRecordTooSmall(pWB, &bof1, buf)) { retval = LIBXLS_ERROR_PARSE; goto cleanup; } @@ -1039,6 +1061,10 @@ printf(" mode: 0x%x\n", pWB->is1904); } break; + + case XLS_RECORD_FILEPASS: + retval = LIBXLS_ERROR_UNSUPPORTED_ENCRYPTION; + goto cleanup; case XLS_RECORD_DEFINEDNAME: if(xls_debug) { @@ -1053,7 +1079,7 @@ if(xls_debug) { //xls_showBOF(&bof1); - printf(" Not Processed in parseWoorkBook(): BOF=0x%4.4X size=%d\n", bof1.id, bof1.size); + printf(" Not Processed in parseWorkBook(): BOF=0x%4.4X size=%d\n", bof1.id, bof1.size); } break; } @@ -1072,6 +1098,8 @@ static xls_error_t xls_preparseWorkSheet(xlsWorkSheet* pWS) { + if(!pWS) return LIBXLS_ERROR_NULL_ARGUMENT; + BOF tmp; BYTE* buf = NULL; xls_error_t retval = LIBXLS_OK; @@ -1221,6 +1249,8 @@ xls_error_t xls_parseWorkSheet(xlsWorkSheet* pWS) { + if(!pWS) return LIBXLS_ERROR_NULL_ARGUMENT; + BOF tmp; BYTE* buf = NULL; long offset = pWS->filepos; @@ -1653,6 +1683,8 @@ return "Unable to allocate memory"; if (code == LIBXLS_ERROR_PARSE) return "Unable to parse file"; + if (code == LIBXLS_ERROR_UNSUPPORTED_ENCRYPTION) + return "Unsupported encryption scheme"; return "Unknown error"; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/src/xlstool.c new/libxls-1.6.3/src/xlstool.c --- old/libxls-1.6.2/src/xlstool.c 2020-12-30 05:46:54.000000000 +0100 +++ new/libxls-1.6.3/src/xlstool.c 2023-05-02 00:13:35.000000000 +0200 @@ -737,7 +737,8 @@ DWORD i; char *ret = malloc(65535); - char *buf = malloc(4096); + size_t buf_len = 4096; + char *buf = malloc(buf_len); ret[0] = '\0'; for (i=0;i<pWB->xfs.count;i++) @@ -780,62 +781,62 @@ switch (xf->linestyle & 0x0f) { case 0: - sprintf(borderleft,"%s", ""); + snprintf(borderleft, sizeof(borderleft), "%s", ""); break; default: - sprintf(borderleft,"border-left: 1px solid black;"); + snprintf(borderleft, sizeof(borderleft), "border-left: 1px solid black;"); break; } switch (xf->linestyle & 0x0f0) { case 0: - sprintf(borderright,"%s", ""); + snprintf(borderright, sizeof(borderright), "%s", ""); break; default: - sprintf(borderright,"border-right: 1px solid black;"); + snprintf(borderright, sizeof(borderright), "border-right: 1px solid black;"); break; } switch (xf->linestyle & 0x0f00) { case 0: - sprintf(bordertop,"%s", ""); + snprintf(bordertop, sizeof(bordertop), "%s", ""); break; default: - sprintf(bordertop,"border-top: 1px solid black;"); + snprintf(bordertop, sizeof(bordertop), "border-top: 1px solid black;"); break; } switch (xf->linestyle & 0x0f000) { case 0: - sprintf(borderbottom,"%s", ""); + snprintf(borderbottom, sizeof(borderbottom), "%s", ""); break; default: - sprintf(borderbottom,"border-bottom: 1px solid Black;"); + snprintf(borderbottom, sizeof(borderbottom), "border-bottom: 1px solid Black;"); break; } if (xf->font) - sprintf(color,"color:#%.6X;",xls_getColor(pWB->fonts.font[xf->font-1].color,0)); + snprintf(color, sizeof(color), "color:#%.6X;",xls_getColor(pWB->fonts.font[xf->font-1].color,0)); else - sprintf(color,"%s", ""); + snprintf(color, sizeof(color), "%s", ""); if (xf->font && (pWB->fonts.font[xf->font-1].flag & 2)) - sprintf(italic,"font-style: italic;"); + snprintf(italic, sizeof(italic), "font-style: italic;"); else - sprintf(italic,"%s", ""); + snprintf(italic, sizeof(italic), "%s", ""); if (xf->font && (pWB->fonts.font[xf->font-1].bold>400)) - sprintf(bold,"font-weight: bold;"); + snprintf(bold, sizeof(bold), "font-weight: bold;"); else - sprintf(bold,"%s", ""); + snprintf(bold, sizeof(bold), "%s", ""); if (xf->font && (pWB->fonts.font[xf->font-1].underline)) - sprintf(underline,"text-decoration: underline;"); + snprintf(underline, sizeof(underline), "text-decoration: underline;"); else - sprintf(underline,"%s", ""); + snprintf(underline, sizeof(underline), "%s", ""); if (xf->font) size=pWB->fonts.font[xf->font-1].height/20; @@ -843,12 +844,12 @@ size=10; if (xf->font) - sprintf(fontname,"%s",pWB->fonts.font[xf->font-1].name); + snprintf(fontname, sizeof(fontname),"%s",pWB->fonts.font[xf->font-1].name); else - sprintf(fontname,"Arial"); + snprintf(fontname, sizeof(fontname),"Arial"); background=xls_getColor((WORD)(xf->groundcolor & 0x7f),1); - sprintf(buf,".xf%i{ font-size:%ipt;font-family: \"%s\";background:#%.6X;text-align:%s;vertical-align:%s;%s%s%s%s%s%s%s%s}\n", + snprintf(buf, buf_len, ".xf%i{ font-size:%ipt;font-family: \"%s\";background:#%.6X;text-align:%s;vertical-align:%s;%s%s%s%s%s%s%s%s}\n", i,size,fontname,background,align,valign,borderleft,borderright,bordertop,borderbottom,color,italic,bold,underline); strcat(ret,buf); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/test/test.c new/libxls-1.6.3/test/test.c --- old/libxls-1.6.2/test/test.c 2019-02-10 18:19:57.000000000 +0100 +++ new/libxls-1.6.3/test/test.c 2022-01-06 14:08:12.000000000 +0100 @@ -66,6 +66,8 @@ printf("Sheet N%i (%s) pos %i\n",i,pWB->sheets.sheet[i].name,pWB->sheets.sheet[i].filepos); pWS=xls_getWorkSheet(pWB,0); + if(!pWS) return 1; + if ((code = xls_parseWorkSheet(pWS)) != LIBXLS_OK) { fprintf(stderr, "Error parsing worksheet: %s\n", xls_getError(code)); return 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/test/test2.c new/libxls-1.6.3/test/test2.c --- old/libxls-1.6.2/test/test2.c 2019-02-10 18:19:57.000000000 +0100 +++ new/libxls-1.6.3/test/test2.c 2022-01-06 14:08:12.000000000 +0100 @@ -69,6 +69,8 @@ printf("Sheet N%i (%s) pos %i\n",i,pWB->sheets.sheet[i].name,pWB->sheets.sheet[i].filepos); pWS=xls_getWorkSheet(pWB,0); + if(!pWS) return 1; + if ((code = xls_parseWorkSheet(pWS)) != LIBXLS_OK) { fprintf(stderr, "Error parsing worksheet: %s\n", xls_getError(code)); return 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libxls-1.6.2/test-driver new/libxls-1.6.3/test-driver --- old/libxls-1.6.2/test-driver 2019-06-12 17:22:34.000000000 +0200 +++ new/libxls-1.6.3/test-driver 2024-12-26 11:45:43.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # test-driver - basic testsuite driver script. -scriptversion=2016-01-11.22; # UTC +scriptversion=2024-06-19.01; # UTC -# Copyright (C) 2011-2017 Free Software Foundation, Inc. +# Copyright (C) 2011-2024 Free Software Foundation, Inc. # # 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 @@ -16,7 +16,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -42,11 +42,18 @@ { cat <<END Usage: - test-driver --test-name=NAME --log-file=PATH --trs-file=PATH - [--expect-failure={yes|no}] [--color-tests={yes|no}] - [--enable-hard-errors={yes|no}] [--] + test-driver --test-name NAME --log-file PATH --trs-file PATH + [--expect-failure {yes|no}] [--color-tests {yes|no}] + [--collect-skipped-logs {yes|no}] + [--enable-hard-errors {yes|no}] [--] TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS] + The '--test-name', '--log-file' and '--trs-file' options are mandatory. +See the GNU Automake documentation for information. + +Report bugs to <bug-autom...@gnu.org>. +GNU Automake home page: <https://www.gnu.org/software/automake/>. +General help using GNU software: <https://www.gnu.org/gethelp/>. END } @@ -55,15 +62,17 @@ trs_file= # Where to save the metadata of the test run. expect_failure=no color_tests=no +collect_skipped_logs=yes enable_hard_errors=yes while test $# -gt 0; do case $1 in --help) print_usage; exit $?;; - --version) echo "test-driver $scriptversion"; exit $?;; + --version) echo "test-driver (GNU Automake) $scriptversion"; exit $?;; --test-name) test_name=$2; shift;; --log-file) log_file=$2; shift;; --trs-file) trs_file=$2; shift;; --color-tests) color_tests=$2; shift;; + --collect-skipped-logs) collect_skipped_logs=$2; shift;; --expect-failure) expect_failure=$2; shift;; --enable-hard-errors) enable_hard_errors=$2; shift;; --) shift; break;; @@ -103,8 +112,11 @@ trap "st=141; $do_exit" 13 trap "st=143; $do_exit" 15 -# Test script is run here. -"$@" >$log_file 2>&1 +# Test script is run here. We create the file first, then append to it, +# to ameliorate tests themselves also writing to the log file. Our tests +# don't, but others can (automake bug#35762). +: >"$log_file" +"$@" >>"$log_file" 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then @@ -116,7 +128,7 @@ case $tweaked_estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; - 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 77:*) col=$blu res=SKIP recheck=no gcopy=$collect_skipped_logs;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; *:*) col=$red res=FAIL recheck=yes gcopy=yes;; @@ -126,7 +138,7 @@ # know whether the test passed or failed simply by looking at the '.log' # file, without the need of also peaking into the corresponding '.trs' # file (automake bug#11814). -echo "$res $test_name (exit status: $estatus)" >>$log_file +echo "$res $test_name (exit status: $estatus)" >>"$log_file" # Report outcome to console. echo "${col}${res}${std}: $test_name" @@ -140,7 +152,7 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0"