From 6fd0dd5e97f03871ccc0d56258b5eb5f16e1d029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Mon, 4 Dec 2023 18:58:24 +0700 Subject: [PATCH] geeqie: fix use-after-free and double-free with exiv2-0.28.x Fixes: #47547 --- srcpkgs/geeqie/patches/exiv-fix-double-free.patch | 14 ++++++++++++++ srcpkgs/geeqie/template | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/geeqie/patches/exiv-fix-double-free.patch diff --git a/srcpkgs/geeqie/patches/exiv-fix-double-free.patch b/srcpkgs/geeqie/patches/exiv-fix-double-free.patch new file mode 100644 index 00000000000..c38aa63268b --- /dev/null +++ b/srcpkgs/geeqie/patches/exiv-fix-double-free.patch @@ -0,0 +1,14 @@ +diff --git a/src/exiv2.cc b/src/exiv2.cc +index a8ff73da..c26ba206 100644 +--- a/src/exiv2.cc ++++ b/src/exiv2.cc +@@ -1223,7 +1223,8 @@ guchar *exif_get_preview(ExifData *exif, guint *data_len, gint requested_width, + + #if EXIV2_TEST_VERSION(0,28,0) + *data_len = buf.size(); +- auto b = buf.data(); ++ Exiv2::byte* b = new Exiv2::byte[*data_len]; ++ std::copy(buf.cbegin(), buf.cend(), b); + buf.reset(); + return b; + #else diff --git a/srcpkgs/geeqie/template b/srcpkgs/geeqie/template index b494bc149e9..6be74fd8724 100644 --- a/srcpkgs/geeqie/template +++ b/srcpkgs/geeqie/template @@ -1,7 +1,7 @@ # Template file for 'geeqie' pkgname=geeqie version=2.1 -revision=2 +revision=3 build_style=meson hostmakedepends="pkg-config gettext xxd gdk-pixbuf-devel glib-devel" makedepends="gtk+3-devel glib-devel lcms2-devel exiv2-devel libheif-devel