From 453bd649bfd6eefb8d0c8a3c65a8227c6eea0036d5109c7ad8b1eabd163e583b Mon Sep 17 00:00:00 2001 From: Manfred Schwarb Date: Tue, 17 Apr 2018 10:35:36 +0000 Subject: [PATCH] Accepting request 597415 from home:manfred999 add upstream fix for null pointer deref in gifdiff.c OBS-URL: https://build.opensuse.org/request/show/597415 OBS-URL: https://build.opensuse.org/package/show/graphics/gifsicle?expand=0&rev=19 --- fix_gifdiff_null_pointer_deref.patch | 40 ++++++++++++++++++++++++++++ gifsicle.changes | 6 +++++ gifsicle.spec | 11 +++++--- 3 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 fix_gifdiff_null_pointer_deref.patch diff --git a/fix_gifdiff_null_pointer_deref.patch b/fix_gifdiff_null_pointer_deref.patch new file mode 100644 index 0000000..609a016 --- /dev/null +++ b/fix_gifdiff_null_pointer_deref.patch @@ -0,0 +1,40 @@ +From e2d5c01a9c7022003135888c85b3255226e4cf98 Mon Sep 17 00:00:00 2001 +From: Eddie Kohler +Date: Sun, 8 Apr 2018 15:15:56 -0400 +Subject: [PATCH] Fix #130 (gifdiff null pointer deref). + +--- + src/gifdiff.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/gifdiff.c b/src/gifdiff.c +index ade1e1e..abc0142 100644 +--- a/src/gifdiff.c ++++ b/src/gifdiff.c +@@ -61,9 +61,8 @@ static Clp_Parser* clp; + static void + combine_colormaps(Gif_Colormap *gfcm, Gif_Colormap *newcm) + { +- int i; +- if (!gfcm) return; +- for (i = 0; i < gfcm->ncol; i++) { ++ int i, gfcm_ncol = gfcm ? gfcm->ncol : 0; ++ for (i = 0; i < gfcm_ncol; i++) { + Gif_Color *c = &gfcm->col[i]; + c->pixel = Gif_AddColor(newcm, c, 1); + } +@@ -116,11 +115,12 @@ apply_image(int is_second, Gif_Stream *gfs, int imageno, uint16_t background) + uint16_t *data = gdata[is_second]; + uint16_t *last = glast[is_second]; + Gif_Colormap *gfcm = gfi->local ? gfi->local : gfs->global; ++ int gfcm_ncol = gfcm ? gfcm->ncol : 0; + + /* set up colormap */ +- for (i = 0; i < gfcm->ncol; ++i) ++ for (i = 0; i < gfcm_ncol; ++i) + map[i] = gfcm->col[i].pixel; +- for (i = gfcm->ncol; i < 256; ++i) ++ for (i = gfcm_ncol; i < 256; ++i) + map[i] = 1; + if (gfi->transparent >= 0 && gfi->transparent < 256) + map[gfi->transparent] = TRANSP; diff --git a/gifsicle.changes b/gifsicle.changes index 1e65ae9..4380ebf 100644 --- a/gifsicle.changes +++ b/gifsicle.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Apr 16 22:40:09 UTC 2018 - manfred99@gmx.ch + +- add fix_gifdiff_null_pointer_deref.patch: + upstream fix, commit e2d5c01a9c7022003135888c85b3255226e4cf98 + ------------------------------------------------------------------- Fri Jan 5 23:01:51 UTC 2018 - manfred99@gmx.ch diff --git a/gifsicle.spec b/gifsicle.spec index f8a7476..85a5b45 100644 --- a/gifsicle.spec +++ b/gifsicle.spec @@ -20,12 +20,15 @@ Name: gifsicle Version: 1.91 Release: 0 Summary: Creating and editing GIF images and animations -License: GPL-2.0 +License: GPL-2.0-only Group: Productivity/Graphics/Other -Url: https://www.lcdf.org/gifsicle/ +URL: https://www.lcdf.org/gifsicle/ Source: https://www.lcdf.org/gifsicle/%{name}-%{version}.tar.gz +# PATCH-FIX-UPSTREAM fix_gifdiff_null_pointer_deref.patch +Patch0: fix_gifdiff_null_pointer_deref.patch Obsoletes: ungifsicle < %{version} Provides: ungifsicle = %{version} +BuildRequires: pkgconfig BuildRequires: pkgconfig(x11) %if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version} BuildRequires: perl-Time-HiRes @@ -50,6 +53,7 @@ appearance. %prep %setup -q +%patch0 -p1 %build %configure @@ -62,7 +66,8 @@ make %{?_smp_mflags} check %make_install %files -%doc COPYING NEWS.md README.md +%license COPYING +%doc NEWS.md README.md %{_bindir}/gifdiff %{_bindir}/gifsicle %{_bindir}/gifview