From 41ce1c58a67bd4279a1a8459f77382a76f6b2e5b Mon Sep 17 00:00:00 2001 From: J0WI <J0WI@users.noreply.github.com> Date: Mon, 26 Feb 2024 00:33:28 +0100 Subject: [PATCH] main/giflib: security upgrade to 5.2.2 --- main/giflib/APKBUILD | 20 ++++--- main/giflib/CVE-2021-40633.patch | 30 ++++++++++ main/giflib/CVE-2022-28506.patch | 15 ----- .../correct-document-page-install.patch | 58 +++++++++++++++++++ .../giflib/dont-build-html-pages-images.patch | 18 ++++++ .../giflib-restore-deprecated-functions.patch | 17 ------ 6 files changed, 119 insertions(+), 39 deletions(-) create mode 100644 main/giflib/CVE-2021-40633.patch delete mode 100644 main/giflib/CVE-2022-28506.patch create mode 100644 main/giflib/correct-document-page-install.patch create mode 100644 main/giflib/dont-build-html-pages-images.patch delete mode 100644 main/giflib/giflib-restore-deprecated-functions.patch diff --git a/main/giflib/APKBUILD b/main/giflib/APKBUILD index db186cb68187..4d5a4ffd7539 100644 --- a/main/giflib/APKBUILD +++ b/main/giflib/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=giflib -pkgver=5.2.1 -pkgrel=2 +pkgver=5.2.2 +pkgrel=0 pkgdesc="A library for reading and writing GIF images" url="https://sourceforge.net/projects/giflib/" arch="all" @@ -10,11 +10,16 @@ subpackages="$pkgname-dev $pkgname-doc $pkgname-utils" makedepends="xmlto" checkdepends="coreutils" source="https://downloads.sourceforge.net/sourceforge/giflib/giflib-$pkgver.tar.gz - CVE-2022-28506.patch - giflib-restore-deprecated-functions.patch + CVE-2021-40633.patch + correct-document-page-install.patch + dont-build-html-pages-images.patch " # secfixes: +# 5.2.2-r0: +# - CVE-2023-39742 +# - CVE-2023-48161 +# - CVE-2021-40633 # 5.2.1-r2: # - CVE-2022-28506 @@ -38,7 +43,8 @@ utils() { } sha512sums=" -4550e53c21cb1191a4581e363fc9d0610da53f7898ca8320f0d3ef6711e76bdda2609c2df15dc94c45e28bff8de441f1227ec2da7ea827cb3c0405af4faa4736 giflib-5.2.1.tar.gz -1742eb5006628de4b4578fa4920b9ea849f4d340900f8acb1bf825d9d5041941770a2c21a2fadc467e8185696e9592d05486bfdcdd7102dba6f2eb18b5142410 CVE-2022-28506.patch -fdc4a46e4a61e15e14ad712f164a3595902da700c3280ef3ec6fae345118c055eefb1eb73bb755078d0ea1f6112fa4a2b8edf9d918017e0bdf413497d15e1eaf giflib-restore-deprecated-functions.patch +0865ab2b1904fa14640c655fdb14bb54244ad18a66e358565c00287875d00912343f9be8bfac7658cc0146200d626f7ec9160d7a339f20ba3be6b9941d73975f giflib-5.2.2.tar.gz +33394cd01a5379ffadffa1a3c9ebd4fe2fddd3ea53fd3c713cc65b0ea0158d26aeb5148a9721c4892e944ef1a5694f54c23450118ab3b6f597e64eb6f3986731 CVE-2021-40633.patch +6cb391eefc95f554ee83e89edf6fae365498597e370d684de5d020cb8f87f7bc3506afb30cbd36e9de2302d3301e33e044804c2d2a2c977d1bb7fa9e73f489cb correct-document-page-install.patch +aa32ccce78120a50f84c2dec644d10996a0fdb41335b47a1d71b45d14ffc9efd14e6aca3f2392dd6713e3c216c07736e94d21d661a90cfe4d57422eb08a1fbc2 dont-build-html-pages-images.patch " diff --git a/main/giflib/CVE-2021-40633.patch b/main/giflib/CVE-2021-40633.patch new file mode 100644 index 000000000000..9002088b67df --- /dev/null +++ b/main/giflib/CVE-2021-40633.patch @@ -0,0 +1,30 @@ +From ccbc956432650734c91acb3fc88837f7b81267ff Mon Sep 17 00:00:00 2001 +From: "Eric S. Raymond" <esr@thyrsus.com> +Date: Wed, 21 Feb 2024 18:55:00 -0500 +Subject: [PATCH] Clean up memory better at end of run (CVE-2021-40633) + +--- + gif2rgb.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/gif2rgb.c b/gif2rgb.c +index d51226d..fc2e683 100644 +--- a/gif2rgb.c ++++ b/gif2rgb.c +@@ -515,10 +515,13 @@ static void GIF2RGB(int NumFiles, char *FileName, bool OneFileFlag, + } + + DumpScreen2RGB(OutFileName, OneFileFlag, ColorMap, ScreenBuffer, + GifFile->SWidth, GifFile->SHeight); + ++ for (i = 0; i < GifFile->SHeight; i++) { ++ (void)free(ScreenBuffer[i]); ++ } + (void)free(ScreenBuffer); + + { + int Error; + if (DGifCloseFile(GifFile, &Error) == GIF_ERROR) { +-- +2.43.0 + diff --git a/main/giflib/CVE-2022-28506.patch b/main/giflib/CVE-2022-28506.patch deleted file mode 100644 index 7dbd669487d2..000000000000 --- a/main/giflib/CVE-2022-28506.patch +++ /dev/null @@ -1,15 +0,0 @@ -https://sourceforge.net/p/giflib/code/merge-requests/12/ ---- a/gif2rgb.c -+++ b/gif2rgb.c -@@ -294,6 +294,11 @@ static void DumpScreen2RGB(char *FileNam - GifRow = ScreenBuffer[i]; - GifQprintf("\b\b\b\b%-4d", ScreenHeight - i); - for (j = 0, BufferP = Buffer; j < ScreenWidth; j++) { -+ /* Check if color is within color palete */ -+ if (GifRow[j] >= ColorMap->ColorCount) -+ { -+ GIF_EXIT(GifErrorString(D_GIF_ERR_IMAGE_DEFECT)); -+ } - ColorMapEntry = &ColorMap->Colors[GifRow[j]]; - *BufferP++ = ColorMapEntry->Red; - *BufferP++ = ColorMapEntry->Green; diff --git a/main/giflib/correct-document-page-install.patch b/main/giflib/correct-document-page-install.patch new file mode 100644 index 000000000000..4e10d86635e2 --- /dev/null +++ b/main/giflib/correct-document-page-install.patch @@ -0,0 +1,58 @@ +From 61f375082c80ee479eb8ff03189aea691a6a06aa Mon Sep 17 00:00:00 2001 +From: "Eric S. Raymond" <esr@thyrsus.com> +Date: Wed, 21 Feb 2024 08:33:51 -0500 +Subject: [PATCH] Correct document page install. + +--- + Makefile | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index 87966a9..f4ecb24 100644 +--- a/Makefile ++++ b/Makefile +@@ -61,19 +61,23 @@ UTILS = $(INSTALLABLE) \ + gifsponge \ + gifwedge + + LDLIBS=libgif.a -lm + +-MANUAL_PAGES = \ ++MANUAL_PAGES_1 = \ + doc/gif2rgb.xml \ + doc/gifbuild.xml \ + doc/gifclrmp.xml \ + doc/giffix.xml \ +- doc/giflib.xml \ + doc/giftext.xml \ + doc/giftool.xml + ++MANUAL_PAGES_7 = \ ++ doc/giflib.xml ++ ++MANUAL_PAGES = $(MANUAL_PAGES_1) $(MANUAL_PAGES_7) ++ + SOEXTENSION = so + LIBGIFSO = libgif.$(SOEXTENSION) + LIBGIFSOMAJOR = libgif.$(SOEXTENSION).$(LIBMAJOR) + LIBGIFSOVER = libgif.$(SOEXTENSION).$(LIBVER) + LIBUTILSO = libutil.$(SOEXTENSION) +@@ -146,12 +150,13 @@ install-lib: + $(INSTALL) -m 644 libgif.a "$(DESTDIR)$(LIBDIR)/libgif.a" + $(INSTALL) -m 755 $(LIBGIFSO) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOVER)" + ln -sf $(LIBGIFSOVER) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOMAJOR)" + ln -sf $(LIBGIFSOMAJOR) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSO)" + install-man: +- $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1" +- $(INSTALL) -m 644 $(MANUAL_PAGES) "$(DESTDIR)$(MANDIR)/man1" ++ $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1" "$(DESTDIR)$(MANDIR)/man7" ++ $(INSTALL) -m 644 $(MANUAL_PAGES_1:xml=1) "$(DESTDIR)$(MANDIR)/man1" ++ $(INSTALL) -m 644 $(MANUAL_PAGES_7:xml=7) "$(DESTDIR)$(MANDIR)/man7" + uninstall: uninstall-man uninstall-include uninstall-lib uninstall-bin + uninstall-bin: + cd "$(DESTDIR)$(BINDIR)" && rm -f $(INSTALLABLE) + uninstall-include: + rm -f "$(DESTDIR)$(INCDIR)/gif_lib.h" +-- +2.43.0 + diff --git a/main/giflib/dont-build-html-pages-images.patch b/main/giflib/dont-build-html-pages-images.patch new file mode 100644 index 000000000000..7d4fe356dcf8 --- /dev/null +++ b/main/giflib/dont-build-html-pages-images.patch @@ -0,0 +1,18 @@ +Description: Don't build the site HTML pages images. + It saves us to have ImageMagick as a b-depend. +Author: David Suárez <david.sephirot@gmail.com> +Origin: vendor +Last-Update: 2024-03-24 +Forwarded: not-needed + +--- a/doc/Makefile ++++ b/doc/Makefile +@@ -46,7 +46,7 @@ + convert $^ -resize 50x50 $@ + + # Philosophical choice: the website gets the internal manual pages +-allhtml: $(XMLALL:.xml=.html) giflib-logo.gif ++allhtml: $(XMLALL:.xml=.html) + + manpages: $(XMLMAN1:.xml=.1) $(XMLMAN7:.xml=.7) $(XMLINTERNAL:.xml=.1) + diff --git a/main/giflib/giflib-restore-deprecated-functions.patch b/main/giflib/giflib-restore-deprecated-functions.patch deleted file mode 100644 index 770cb16d5ac2..000000000000 --- a/main/giflib/giflib-restore-deprecated-functions.patch +++ /dev/null @@ -1,17 +0,0 @@ -Source: Gentoo, written by Gary Stein -Upstream: No -Reason: restores deprecated GifQuantizeBuffer which some packages (notably libgdiplus) still use ---- a/Makefile 2019-03-28 14:57:23.000000000 -0400 -+++ b/Makefile 2019-03-31 23:38:20.700603561 -0400 -@@ -67,8 +67,8 @@ - - $(UTILS):: libgif.a libutil.a - --libgif.so: $(OBJECTS) $(HEADERS) -- $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS) -+libgif.so: $(OBJECTS) $(HEADERS) $(UOBJECTS) -+ $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS) $(UOBJECTS) - - libgif.a: $(OBJECTS) $(HEADERS) - $(AR) rcs libgif.a $(OBJECTS) - -- GitLab