Hello community, here is the log from the commit of package gifsicle for openSUSE:Factory checked in at 2018-01-09 14:53:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gifsicle (Old) and /work/SRC/openSUSE:Factory/.gifsicle.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gifsicle" Tue Jan 9 14:53:06 2018 rev:8 rq:562246 version:1.91 Changes: -------- --- /work/SRC/openSUSE:Factory/gifsicle/gifsicle.changes 2018-01-05 01:01:34.117031687 +0100 +++ /work/SRC/openSUSE:Factory/.gifsicle.new/gifsicle.changes 2018-01-09 14:53:07.811979396 +0100 @@ -1,0 +2,8 @@ +Fri Jan 5 23:01:51 UTC 2018 - [email protected] + +- drop patches fix_double-free.patch, fix_gifdiff_null-deref.patch + and fix-null-deref.patch +- upgrade to version 1.91: + * Several security bug fixes with malicious GIFs. + +------------------------------------------------------------------- Old: ---- fix-null-deref.patch fix_double-free.patch fix_gifdiff_null-deref.patch gifsicle-1.90.tar.gz New: ---- gifsicle-1.91.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gifsicle.spec ++++++ --- /var/tmp/diff_new_pack.qNv0ql/_old 2018-01-09 14:53:08.427950519 +0100 +++ /var/tmp/diff_new_pack.qNv0ql/_new 2018-01-09 14:53:08.427950519 +0100 @@ -17,19 +17,13 @@ Name: gifsicle -Version: 1.90 +Version: 1.91 Release: 0 Summary: Creating and editing GIF images and animations License: GPL-2.0 Group: Productivity/Graphics/Other Url: https://www.lcdf.org/gifsicle/ Source: https://www.lcdf.org/gifsicle/%{name}-%{version}.tar.gz -# PATCH-FIX-UPSTREAM fix-null-deref.patch -Patch0: fix-null-deref.patch -# PATCH-FIX-UPSTREAM fix_double-free.patch -Patch1: fix_double-free.patch -# PATCH-FIX-UPSTREAM fix_gifdiff_null-deref.patch -Patch2: fix_gifdiff_null-deref.patch Obsoletes: ungifsicle < %{version} Provides: ungifsicle = %{version} BuildRequires: pkgconfig(x11) @@ -56,9 +50,6 @@ %prep %setup -q -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 %build %configure ++++++ gifsicle-1.90.tar.gz -> gifsicle-1.91.tar.gz ++++++ Binary files old/gifsicle-1.90/._logo.gif and new/gifsicle-1.91/._logo.gif differ Binary files old/gifsicle-1.90/._logo1.gif and new/gifsicle-1.91/._logo1.gif differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/NEWS.md new/gifsicle-1.91/NEWS.md --- old/gifsicle-1.90/NEWS.md 2017-08-14 18:24:20.000000000 +0200 +++ new/gifsicle-1.91/NEWS.md 2018-01-05 20:09:08.000000000 +0100 @@ -1,6 +1,11 @@ Gifsicle NEWS ============= +## Version 1.91 – 5.Jan.2018 + +* Several security bug fixes with malicious GIFs. + + ## Version 1.90 – 14.Aug.2017 * Kill a use-after-free error reported by @junxzm1990. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/README.md new/gifsicle-1.91/README.md --- old/gifsicle-1.90/README.md 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/README.md 2018-01-05 19:55:43.000000000 +0100 @@ -82,32 +82,10 @@ http://www.read.seas.harvard.edu/~kohler/ -The GIF Patents and UnGIFs --------------------------- - -Patents formerly restricted use of the Lempel-Ziv-Welch compression -algorithm used in GIFs. As of October 1, 2006, it is believed (by the -Software Freedom Law Center and the Free Software Foundation, among -others) that there are no significant patent claims interfering with -employment of the GIF format. For that reason, Gifsicle is completely -free software. - -Nonetheless, Gifsicle can be configured to write run-length-encoded -GIFs, rather than LZW-compressed GIFs, avoiding these obsolete -patents. This idea was first implemented independently by Toshio -Kuratomi <[email protected]> and Hutchison Avenue Software -Corporation (http://www.hasc.com/, <[email protected]>). Turn this on by -giving `./configure` the `--enable-ungif` switch. Now that the patents -have expired there is no good reason to turn on this switch, which can -make GIFs a factor of 2 larger or more. If your copy of Gifsicle says -`(ungif)` when you run `gifsicle --version`, it is writing -run-length-encoded GIFs. - - Copyright/License ----------------- -All source code is Copyright (C) 1997-2017 Eddie Kohler. +All source code is Copyright (C) 1997-2018 Eddie Kohler. IF YOU PLAN TO USE GIFSICLE ONLY TO CREATE OR MODIFY GIF IMAGES, DON'T WORRY ABOUT THE REST OF THIS SECTION. Anyone can use Gifsicle however diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/configure new/gifsicle-1.91/configure --- old/gifsicle-1.90/configure 2017-08-14 18:22:54.000000000 +0200 +++ new/gifsicle-1.91/configure 2018-01-05 20:00:31.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for gifsicle 1.90. +# Generated by GNU Autoconf 2.69 for gifsicle 1.91. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -577,8 +577,8 @@ # Identity of this package. PACKAGE_NAME='gifsicle' PACKAGE_TARNAME='gifsicle' -PACKAGE_VERSION='1.90' -PACKAGE_STRING='gifsicle 1.90' +PACKAGE_VERSION='1.91' +PACKAGE_STRING='gifsicle 1.91' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1282,7 +1282,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 gifsicle 1.90 to adapt to many kinds of systems. +\`configure' configures gifsicle 1.91 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1352,7 +1352,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gifsicle 1.90:";; + short | recursive ) echo "Configuration of gifsicle 1.91:";; esac cat <<\_ACEOF @@ -1457,7 +1457,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gifsicle configure 1.90 +gifsicle configure 1.91 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2059,7 +2059,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gifsicle $as_me 1.90, which was +It was created by gifsicle $as_me 1.91, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2925,7 +2925,7 @@ # Define the identity of the package. PACKAGE='gifsicle' - VERSION='1.90' + VERSION='1.91' cat >>confdefs.h <<_ACEOF @@ -6615,7 +6615,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gifsicle $as_me 1.90, which was +This file was extended by gifsicle $as_me 1.91, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6681,7 +6681,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -gifsicle config.status 1.90 +gifsicle config.status 1.91 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/gifsicle-1.90/configure.ac new/gifsicle-1.91/configure.ac --- old/gifsicle-1.90/configure.ac 2017-08-14 18:22:47.000000000 +0200 +++ new/gifsicle-1.91/configure.ac 2018-01-05 20:00:22.000000000 +0100 @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([gifsicle], [1.90]) +AC_INIT([gifsicle], [1.91]) AC_CONFIG_SRCDIR([src/gifsicle.h]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/gifdiff.1 new/gifsicle-1.91/gifdiff.1 --- old/gifsicle-1.90/gifdiff.1 2017-08-14 18:24:26.000000000 +0200 +++ new/gifsicle-1.91/gifdiff.1 2018-01-05 20:00:58.000000000 +0100 @@ -1,5 +1,5 @@ .\" -*- mode: nroff -*- -.ds V 1.90 +.ds V 1.91 .ds E " \-\- .if t .ds E \(em .de Op diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/gifsicle.1 new/gifsicle-1.91/gifsicle.1 --- old/gifsicle-1.90/gifsicle.1 2017-08-14 18:24:26.000000000 +0200 +++ new/gifsicle-1.91/gifsicle.1 2018-01-05 20:00:58.000000000 +0100 @@ -1,5 +1,5 @@ .\" -*- mode: nroff -*- -.ds V 1.90 +.ds V 1.91 .ds E " \-\- .if t .ds E \(em .de Op diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/gifview.1 new/gifsicle-1.91/gifview.1 --- old/gifsicle-1.90/gifview.1 2017-08-14 18:24:26.000000000 +0200 +++ new/gifsicle-1.91/gifview.1 2018-01-05 20:00:58.000000000 +0100 @@ -1,5 +1,5 @@ .\" -*- mode: nroff -*- -.ds V 1.90 +.ds V 1.91 .ds E " \-\- .if t .ds E \(em .de Op diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/clp.c new/gifsicle-1.91/src/clp.c --- old/gifsicle-1.90/src/clp.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/clp.c 2018-01-05 19:55:43.000000000 +0100 @@ -2,7 +2,7 @@ /* clp.c - Complete source code for CLP. * This file is part of CLP, the command line parser package. * - * Copyright (c) 1997-2017 Eddie Kohler, [email protected] + * Copyright (c) 1997-2018 Eddie Kohler, [email protected] * * CLP is free software. It is distributed under the GNU General Public * License, Version 2, or, alternatively and at your discretion, under the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/gifdiff.c new/gifsicle-1.91/src/gifdiff.c --- old/gifsicle-1.90/src/gifdiff.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/gifdiff.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* gifdiff.c - Gifdiff compares GIF images for identical appearance. - Copyright (C) 1998-2017 Eddie Kohler, [email protected] + Copyright (C) 1998-2018 Eddie Kohler, [email protected] This file is part of gifdiff, in the gifsicle package. Gifdiff is free software. It is distributed under the GNU Public License, @@ -248,12 +248,6 @@ Gif_CalculateScreenSize(s1, 0); Gif_CalculateScreenSize(s2, 0); - if (s1->nimages != s2->nimages - && (s1->nimages == 0 || s2->nimages == 0)) { - different("frame counts differ: <#%d >#%d", s1->nimages, s2->nimages); - return DIFFERENT; - } - if (s1->screen_width != s2->screen_width || s1->screen_height != s2->screen_height) { different("screen sizes differ: <%dx%d >%dx%d", s1->screen_width, @@ -268,6 +262,14 @@ return DIFFERENT; } + if (s1->nimages == 0 || s2->nimages == 0) { + if (s1->nimages != s2->nimages) { + different("frame counts differ: <#%d >#%d", s1->nimages, s2->nimages); + return DIFFERENT; + } else + return SAME; + } + /* Create arrays for the image data */ screen_width = s1->screen_width; screen_height = s1->screen_height; @@ -558,7 +560,7 @@ case VERSION_OPT: printf("gifdiff (LCDF Gifsicle) %s\n", VERSION); - printf("Copyright (C) 1998-2017 Eddie Kohler\n\ + printf("Copyright (C) 1998-2018 Eddie Kohler\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty, not even for merchantability or fitness for a\n\ particular purpose.\n"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/giffunc.c new/gifsicle-1.91/src/giffunc.c --- old/gifsicle-1.90/src/giffunc.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/giffunc.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* giffunc.c - General functions for the GIF library. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of the LCDF GIF library. The LCDF GIF library is free software. It is distributed under the GNU @@ -226,7 +226,7 @@ int Gif_ImageColorBound(const Gif_Image* gfi) { - if (gfi->compressed) + if (gfi->compressed && gfi->compressed[0] > 0 && gfi->compressed[0] < 8) return 1 << gfi->compressed[0]; else return 256; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/gifread.c new/gifsicle-1.91/src/gifread.c --- old/gifsicle-1.90/src/gifread.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/gifread.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* gifread.c - Functions to read GIFs. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of the LCDF GIF library. The LCDF GIF library is free software. It is distributed under the GNU @@ -900,6 +900,7 @@ Gif_DeleteArray(gfc.suffix); Gif_DeleteArray(gfc.length); gfc.gfi = 0; + last_name = 0; if (gfs) gfs->errors = gfc.errors[1]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/gifsicle.c new/gifsicle-1.91/src/gifsicle.c --- old/gifsicle-1.90/src/gifsicle.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/gifsicle.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,6 +1,6 @@ /* -*- c-basic-offset: 2 -*- */ /* gifsicle.c - gifsicle's main loop. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of gifsicle. Gifsicle is free software. It is distributed under the GNU Public License, @@ -2116,7 +2116,7 @@ #else printf("LCDF Gifsicle %s\n", VERSION); #endif - printf("Copyright (C) 1997-2017 Eddie Kohler\n\ + printf("Copyright (C) 1997-2018 Eddie Kohler\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty, not even for merchantability or fitness for a\n\ particular purpose.\n"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/gifunopt.c new/gifsicle-1.91/src/gifunopt.c --- old/gifsicle-1.90/src/gifunopt.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/gifunopt.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* gifunopt.c - Unoptimization function for the GIF library. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of the LCDF GIF library. The LCDF GIF library is free software. It is distributed under the GNU diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/gifview.c new/gifsicle-1.91/src/gifview.c --- old/gifsicle-1.90/src/gifview.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/gifview.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* gifview.c - gifview's main loop. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of gifview, in the gifsicle package. Gifview is free software. It is distributed under the GNU Public License, @@ -1356,7 +1356,7 @@ case VERSION_OPT: printf("gifview (LCDF Gifsicle) %s\n", VERSION); - printf("Copyright (C) 1997-2017 Eddie Kohler\n\ + printf("Copyright (C) 1997-2018 Eddie Kohler\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty, not even for merchantability or fitness for a\n\ particular purpose.\n"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/gifwrite.c new/gifsicle-1.91/src/gifwrite.c --- old/gifsicle-1.90/src/gifwrite.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/gifwrite.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,6 +1,6 @@ /* -*- mode: c; c-basic-offset: 2 -*- */ /* gifwrite.c - Functions to write GIFs. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of the LCDF GIF library. The LCDF GIF library is free software. It is distributed under the GNU diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/gifx.c new/gifsicle-1.91/src/gifx.c --- old/gifsicle-1.90/src/gifx.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/gifx.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* gifx.c - Functions to turn GIFs in memory into X Pixmaps. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of the LCDF GIF library. The LCDF GIF library is free software. It is distributed under the GNU diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/kcolor.h new/gifsicle-1.91/src/kcolor.h --- old/gifsicle-1.90/src/kcolor.h 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/kcolor.h 2018-01-05 19:55:43.000000000 +0100 @@ -107,8 +107,11 @@ /* return the squared Euclidean distance between `*x` and `*y` */ static inline uint32_t kc_distance(const kcolor* x, const kcolor* y) { - int32_t d0 = x->a[0] - y->a[0], d1 = x->a[1] - y->a[1], - d2 = x->a[2] - y->a[2]; + /* It’s OK to use unsigned multiplication for this: the low 32 bits + are the same either way. Unsigned avoids undefined behavior. */ + uint32_t d0 = x->a[0] - y->a[0]; + uint32_t d1 = x->a[1] - y->a[1]; + uint32_t d2 = x->a[2] - y->a[2]; return d0 * d0 + d1 * d1 + d2 * d2; } @@ -120,7 +123,6 @@ /* set `*x` to the grayscale version of `*x`, transformed by luminance */ static inline void kc_luminance_transform(kcolor* x) { /* For grayscale colormaps, use distance in luminance space instead of - distance in RGB space. The weights for the R,G,B components in luminance space are 0.2126,0.7152,0.0722. (That's ITU primaries, which are compatible with sRGB; NTSC recommended our previous values, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/merge.c new/gifsicle-1.91/src/merge.c --- old/gifsicle-1.90/src/merge.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/merge.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* merge.c - Functions which actually combine and manipulate GIF image data. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of gifsicle. Gifsicle is free software. It is distributed under the GNU Public License, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/optimize.c new/gifsicle-1.91/src/optimize.c --- old/gifsicle-1.90/src/optimize.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/optimize.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* optimize.c - Functions to optimize animated GIFs. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of gifsicle. Gifsicle is free software. It is distributed under the GNU Public License, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/opttemplate.c new/gifsicle-1.91/src/opttemplate.c --- old/gifsicle-1.90/src/opttemplate.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/opttemplate.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* opttemplate.c - Functions to optimize animated GIFs. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of gifsicle. Gifsicle is free software. It is distributed under the GNU Public License, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/quantize.c new/gifsicle-1.91/src/quantize.c --- old/gifsicle-1.90/src/quantize.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/quantize.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* quantize.c - Histograms and quantization for gifsicle. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of gifsicle. Gifsicle is free software. It is distributed under the GNU Public License, @@ -1001,7 +1001,7 @@ } else { int delta = k->a[stackpos % 3] - p->pivot; if (state[stackpos] == 1 - && (unsigned) (delta * delta) < mindist) { + && (unsigned) delta * (unsigned) delta < mindist) { if (delta < 0) stack[stackpos + 1] = p + p->offset; else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/support.c new/gifsicle-1.91/src/support.c --- old/gifsicle-1.90/src/support.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/support.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* support.c - Support functions for gifsicle. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of gifsicle. Gifsicle is free software. It is distributed under the GNU Public License, @@ -1405,7 +1405,7 @@ } found_right: - if (compress_immediately > 0) + if (compress_immediately > 0 && srci->compressed) Gif_ReleaseUncompressedImage(srci); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/ungifwrt.c new/gifsicle-1.91/src/ungifwrt.c --- old/gifsicle-1.90/src/ungifwrt.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/ungifwrt.c 2018-01-05 19:55:43.000000000 +0100 @@ -2,7 +2,7 @@ /* ungifwrt.c - Functions to write unGIFs -- GIFs with run-length compression, not LZW compression. Idea due to Hutchinson Avenue Software Corporation <http://www.hasc.com>. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of the LCDF GIF library. The LCDF GIF library is free software. It is distributed under the GNU diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/win32cfg.h new/gifsicle-1.91/src/win32cfg.h --- old/gifsicle-1.90/src/win32cfg.h 2017-08-14 18:24:26.000000000 +0200 +++ new/gifsicle-1.91/src/win32cfg.h 2018-01-05 20:00:58.000000000 +0100 @@ -77,7 +77,7 @@ #define PACKAGE_NAME "gifsicle" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "gifsicle 1.90" +#define PACKAGE_STRING "gifsicle 1.91" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gifsicle" @@ -86,7 +86,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.90" +#define PACKAGE_VERSION "1.91" /* Pathname separator character ('/' on Unix). */ #define PATHNAME_SEPARATOR '\\' @@ -111,7 +111,7 @@ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "1.90 (Windows)" +#define VERSION "1.91 (Windows)" /* Define if X is not available. */ #define X_DISPLAY_MISSING 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gifsicle-1.90/src/xform.c new/gifsicle-1.91/src/xform.c --- old/gifsicle-1.90/src/xform.c 2017-08-14 17:56:40.000000000 +0200 +++ new/gifsicle-1.91/src/xform.c 2018-01-05 19:55:43.000000000 +0100 @@ -1,5 +1,5 @@ /* xform.c - Image transformation functions for gifsicle. - Copyright (C) 1997-2017 Eddie Kohler, [email protected] + Copyright (C) 1997-2018 Eddie Kohler, [email protected] This file is part of gifsicle. Gifsicle is free software. It is distributed under the GNU Public License, @@ -253,7 +253,7 @@ fr->left_offset = fr->crop->left_offset; fr->top_offset = fr->crop->top_offset; - if (c.w > 0 && c.h > 0) { + if (c.w > 0 && c.h > 0 && gfi->img) { uint8_t** old_img = gfi->img; gfi->img = Gif_NewArray(uint8_t *, c.h + 1); for (j = 0; j < c.h; j++)
