geeqie: fix use-after-free and double-free with exiv2-0.28.x

Fixes: #47547
This commit is contained in:
Đoàn Trần Công Danh 2023-12-04 18:58:24 +07:00
parent 4914b2e6fb
commit 6fd0dd5e97
2 changed files with 15 additions and 1 deletions

View file

@ -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

View file

@ -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