From 79b2664e4210011a0ae6f8c60bfd6581a1e7a5bb Mon Sep 17 00:00:00 2001 From: Samuli Suominen Date: Mon, 12 Feb 2007 19:14:05 +0000 Subject: [PATCH] Fix unaligned memory access in exif code -patch from upstream bugzilla. Package-Manager: portage-2.1.2-r9 --- xfce-base/thunar/ChangeLog | 9 +- xfce-base/thunar/Manifest | 19 +- xfce-base/thunar/files/digest-thunar-0.8.0-r2 | 3 + .../thunar/files/thunar-0.8.0-jpeg.patch | 168 ++++++++++++++++++ xfce-base/thunar/thunar-0.8.0-r2.ebuild | 73 ++++++++ 5 files changed, 267 insertions(+), 5 deletions(-) create mode 100644 xfce-base/thunar/files/digest-thunar-0.8.0-r2 create mode 100644 xfce-base/thunar/files/thunar-0.8.0-jpeg.patch create mode 100644 xfce-base/thunar/thunar-0.8.0-r2.ebuild diff --git a/xfce-base/thunar/ChangeLog b/xfce-base/thunar/ChangeLog index caf28e7f1177..d66b470d65a9 100644 --- a/xfce-base/thunar/ChangeLog +++ b/xfce-base/thunar/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for xfce-base/thunar # Copyright 2000-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/xfce-base/thunar/ChangeLog,v 1.18 2007/02/04 17:11:37 drac Exp $ +# $Header: /var/cvsroot/gentoo-x86/xfce-base/thunar/ChangeLog,v 1.19 2007/02/12 19:14:05 drac Exp $ + +*thunar-0.8.0-r2 (12 Feb 2007) + + 12 Feb 2007; Samuli Suominen + +files/thunar-0.8.0-jpeg.patch, +thunar-0.8.0-r2.ebuild: + Fix unaligned memory access in exif code -patch from upstream bugzilla, bug + 2880. *thunar-0.8.0-r1 (04 Feb 2007) diff --git a/xfce-base/thunar/Manifest b/xfce-base/thunar/Manifest index 53d6c0a88c18..f625c6d06347 100644 --- a/xfce-base/thunar/Manifest +++ b/xfce-base/thunar/Manifest @@ -1,12 +1,20 @@ +AUX thunar-0.8.0-jpeg.patch 6399 RMD160 60c65bd1384d602448e6f96439dc36ca8daabaab SHA1 736971b2553155d9b3ed52a62c4c33bdd5387c59 SHA256 c4656828db862e59036adf8ef7f5b1d6ddbad2ca5abf8b72cc8464652a92ddd8 +MD5 58a26314feec636ba5e51affb3f90d36 files/thunar-0.8.0-jpeg.patch 6399 +RMD160 60c65bd1384d602448e6f96439dc36ca8daabaab files/thunar-0.8.0-jpeg.patch 6399 +SHA256 c4656828db862e59036adf8ef7f5b1d6ddbad2ca5abf8b72cc8464652a92ddd8 files/thunar-0.8.0-jpeg.patch 6399 DIST Thunar-0.8.0.tar.bz2 6205993 RMD160 95d29cca64c102b7d8bdcc0592f6fcab7198148b SHA1 1adcba7b86d9219b0bd7eb8c16d5719aa8393d98 SHA256 460484f8397a0e0e4115d1629d2ae027b5052dc2c564d4a4629a3557e4a055f9 EBUILD thunar-0.8.0-r1.ebuild 2010 RMD160 856e9453d5edc2152adb84a85d84319411be6258 SHA1 620ed173e3b8e1faeea933e97c9f34505fffbf98 SHA256 00515fa7e81157cf6b844ba7ddb1386662be60bc5fa0fdd288f6dd4e601a1733 MD5 fe7b407871ea9691ad024f36d51b5f9f thunar-0.8.0-r1.ebuild 2010 RMD160 856e9453d5edc2152adb84a85d84319411be6258 thunar-0.8.0-r1.ebuild 2010 SHA256 00515fa7e81157cf6b844ba7ddb1386662be60bc5fa0fdd288f6dd4e601a1733 thunar-0.8.0-r1.ebuild 2010 -MISC ChangeLog 3184 RMD160 86517904c6747f7d2881c18442e4fe4c55eab96f SHA1 17ae980113d7cb55fb37b05f5b49675cbaeed6e1 SHA256 41d07eff2427f807209adcc9a27535ea08835f572ae4d2cfa0dec87ee2ad6b77 -MD5 335ba821fc1d6c7d32b6b37b203453c9 ChangeLog 3184 -RMD160 86517904c6747f7d2881c18442e4fe4c55eab96f ChangeLog 3184 -SHA256 41d07eff2427f807209adcc9a27535ea08835f572ae4d2cfa0dec87ee2ad6b77 ChangeLog 3184 +EBUILD thunar-0.8.0-r2.ebuild 2089 RMD160 7af60058646c2aaf72b47a09a8e11db1a48ffd22 SHA1 ea29eb3e1aff95f12f2575f70cf174ffce737413 SHA256 3400fd0b087d82c0f2c7eb91eb449ad179d22cf817d43caf5ede1c339b949f90 +MD5 fe41c74750c3b18a00e329e455cd3eb6 thunar-0.8.0-r2.ebuild 2089 +RMD160 7af60058646c2aaf72b47a09a8e11db1a48ffd22 thunar-0.8.0-r2.ebuild 2089 +SHA256 3400fd0b087d82c0f2c7eb91eb449ad179d22cf817d43caf5ede1c339b949f90 thunar-0.8.0-r2.ebuild 2089 +MISC ChangeLog 3411 RMD160 b0b32f75acf924cbf23d64717cb1ad32ff647170 SHA1 e10f493a9712e77feb78aa6f8bc6c0d6cd330eaf SHA256 9b8d5ffcf9e20e98311d2ddb15a314eea9920e9d5ecc13fa7cbd1c413542f52e +MD5 2e6537810230a7531a639acbade977a6 ChangeLog 3411 +RMD160 b0b32f75acf924cbf23d64717cb1ad32ff647170 ChangeLog 3411 +SHA256 9b8d5ffcf9e20e98311d2ddb15a314eea9920e9d5ecc13fa7cbd1c413542f52e ChangeLog 3411 MISC metadata.xml 157 RMD160 d7470fe88d1b96f3a7f1ef26fb7dc646b4a1b907 SHA1 7eae91f2588bdae8667d37a98fb3090d539eeca1 SHA256 44350daa7594842894d676413708d8ea77ccb0017bed24711af5b256281f5e61 MD5 c390804e060ffd11a5bbb143434b2b2d metadata.xml 157 RMD160 d7470fe88d1b96f3a7f1ef26fb7dc646b4a1b907 metadata.xml 157 @@ -14,3 +22,6 @@ SHA256 44350daa7594842894d676413708d8ea77ccb0017bed24711af5b256281f5e61 metadata MD5 74e9028d343ebeba2b70ba51d274d7a5 files/digest-thunar-0.8.0-r1 244 RMD160 bd56683dc3e760f2695e8074cc355370154722d7 files/digest-thunar-0.8.0-r1 244 SHA256 002305cb4a3dcc120b84a79088f3fb013fcd2cf5262fa6e5c1fb80a40d1583f2 files/digest-thunar-0.8.0-r1 244 +MD5 74e9028d343ebeba2b70ba51d274d7a5 files/digest-thunar-0.8.0-r2 244 +RMD160 bd56683dc3e760f2695e8074cc355370154722d7 files/digest-thunar-0.8.0-r2 244 +SHA256 002305cb4a3dcc120b84a79088f3fb013fcd2cf5262fa6e5c1fb80a40d1583f2 files/digest-thunar-0.8.0-r2 244 diff --git a/xfce-base/thunar/files/digest-thunar-0.8.0-r2 b/xfce-base/thunar/files/digest-thunar-0.8.0-r2 new file mode 100644 index 000000000000..36154971d4f9 --- /dev/null +++ b/xfce-base/thunar/files/digest-thunar-0.8.0-r2 @@ -0,0 +1,3 @@ +MD5 9f7b0945d6a235391049f6818fb4d188 Thunar-0.8.0.tar.bz2 6205993 +RMD160 95d29cca64c102b7d8bdcc0592f6fcab7198148b Thunar-0.8.0.tar.bz2 6205993 +SHA256 460484f8397a0e0e4115d1629d2ae027b5052dc2c564d4a4629a3557e4a055f9 Thunar-0.8.0.tar.bz2 6205993 diff --git a/xfce-base/thunar/files/thunar-0.8.0-jpeg.patch b/xfce-base/thunar/files/thunar-0.8.0-jpeg.patch new file mode 100644 index 000000000000..5c9b28f61565 --- /dev/null +++ b/xfce-base/thunar/files/thunar-0.8.0-jpeg.patch @@ -0,0 +1,168 @@ +diff -ur Thunar-0.8.0.orig/thunar-vfs/thunar-vfs-thumb-jpeg.c Thunar-0.8.0/thunar-vfs/thunar-vfs-thumb-jpeg.c +--- Thunar-0.8.0.orig/thunar-vfs/thunar-vfs-thumb-jpeg.c 2007-01-20 22:39:09.000000000 +0200 ++++ Thunar-0.8.0/thunar-vfs/thunar-vfs-thumb-jpeg.c 2007-02-12 20:16:29.000000000 +0200 +@@ -1,4 +1,4 @@ +-/* $Id: thunar-0.8.0-jpeg.patch,v 1.1 2007/02/12 19:14:05 drac Exp $ */ ++/* $Id: thunar-0.8.0-jpeg.patch,v 1.1 2007/02/12 19:14:05 drac Exp $ */ + /*- + * Copyright (c) 2005-2007 Benedikt Meurer + * +@@ -310,18 +310,18 @@ + { + struct /* thumbnail JPEG */ + { +- guint thumb_jpeg_length; +- guint thumb_jpeg_offset; +- }; ++ guint length; ++ guint offset; ++ } thumb_jpeg; + struct /* thumbnail TIFF */ + { +- guint thumb_tiff_length; +- guint thumb_tiff_offset; +- guint thumb_tiff_interp; +- guint thumb_tiff_height; +- guint thumb_tiff_width; +- }; +- }; ++ guint length; ++ guint offset; ++ guint interp; ++ guint height; ++ guint width; ++ } thumb_tiff; ++ } thumb; + + gboolean big_endian; + } TvtjExif; +@@ -330,24 +330,24 @@ + + static guint + tvtj_exif_get_ushort (const TvtjExif *exif, +- gconstpointer data) ++ const guchar *data) + { + if (G_UNLIKELY (exif->big_endian)) +- return GUINT16_FROM_BE (*((const guint16 *) data)); ++ return ((data[0] << 8) | data[1]); + else +- return GUINT16_FROM_LE (*((const guint16 *) data)); ++ return ((data[1] << 8) | data[0]); + } + + + + static guint + tvtj_exif_get_ulong (const TvtjExif *exif, +- gconstpointer data) ++ const guchar *data) + { + if (G_UNLIKELY (exif->big_endian)) +- return GUINT32_FROM_BE (*((const guint32 *) data)); ++ return ((data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3]); + else +- return GUINT32_FROM_LE (*((const guint32 *) data)); ++ return ((data[3] << 24) | (data[2] << 16) | (data[1] << 8) | data[0]); + } + + +@@ -415,15 +415,15 @@ + + /* and remember it appropriately */ + if (tag == 0x0100) +- exif->thumb_tiff_width = value; ++ exif->thumb.thumb_tiff.width = value; + else if (tag == 0x0100) +- exif->thumb_tiff_height = value; ++ exif->thumb.thumb_tiff.height = value; + else if (tag == 0x0106) +- exif->thumb_tiff_interp = value; ++ exif->thumb.thumb_tiff.interp = value; + else if (tag == 0x0111) +- exif->thumb_tiff_offset = value; ++ exif->thumb.thumb_tiff.offset = value; + else +- exif->thumb_tiff_length = value; ++ exif->thumb.thumb_tiff.length = value; + } + else if (tag == 0x0201 || tag == 0x0202) + { +@@ -435,9 +435,9 @@ + + /* and remember it appropriately */ + if (G_LIKELY (tag == 0x201)) +- exif->thumb_jpeg_offset = value; ++ exif->thumb.thumb_jpeg.offset = value; + else +- exif->thumb_jpeg_length = value; ++ exif->thumb.thumb_jpeg.length = value; + } + } + } +@@ -503,25 +503,25 @@ + if (G_LIKELY (exif.thumb_compression == 6)) /* JPEG */ + { + /* check if we have a valid thumbnail JPEG */ +- if (exif.thumb_jpeg_offset > 0 && exif.thumb_jpeg_length > 0 +- && exif.thumb_jpeg_offset + exif.thumb_jpeg_length <= length) ++ if (exif.thumb.thumb_jpeg.offset > 0 && exif.thumb.thumb_jpeg.length > 0 ++ && exif.thumb.thumb_jpeg.offset + exif.thumb.thumb_jpeg.length <= length) + { + /* try to load the embedded thumbnail JPEG */ +- return tvtj_jpeg_load (data + exif.thumb_jpeg_offset, exif.thumb_jpeg_length, size); ++ return tvtj_jpeg_load (data + exif.thumb.thumb_jpeg.offset, exif.thumb.thumb_jpeg.length, size); + } + } + else if (exif.thumb_compression == 1) /* Uncompressed */ + { + /* check if we have a valid thumbnail (current only RGB interpretations) */ +- if (G_LIKELY (exif.thumb_tiff_interp == 2) +- && exif.thumb_tiff_offset > 0 && exif.thumb_tiff_length > 0 +- && exif.thumb_tiff_offset + exif.thumb_tiff_length <= length +- && exif.thumb_tiff_height * exif.thumb_tiff_width == exif.thumb_tiff_length) ++ if (G_LIKELY (exif.thumb.thumb_tiff.interp == 2) ++ && exif.thumb.thumb_tiff.offset > 0 && exif.thumb.thumb_tiff.length > 0 ++ && exif.thumb.thumb_tiff.offset + exif.thumb.thumb_tiff.length <= length ++ && exif.thumb.thumb_tiff.height * exif.thumb.thumb_tiff.width == exif.thumb.thumb_tiff.length) + { + /* plain RGB data, just what we need for a GdkPixbuf */ +- return gdk_pixbuf_new_from_data (g_memdup (data + exif.thumb_tiff_offset, exif.thumb_tiff_length), +- GDK_COLORSPACE_RGB, FALSE, 8, exif.thumb_tiff_width, +- exif.thumb_tiff_height, exif.thumb_tiff_width, ++ return gdk_pixbuf_new_from_data (g_memdup (data + exif.thumb.thumb_tiff.offset, exif.thumb.thumb_tiff.length), ++ GDK_COLORSPACE_RGB, FALSE, 8, exif.thumb.thumb_tiff.width, ++ exif.thumb.thumb_tiff.height, exif.thumb.thumb_tiff.width, + (GdkPixbufDestroyNotify) g_free, NULL); + } + } +@@ -615,7 +615,7 @@ + if (G_LIKELY (fstat (fd, &statb) == 0 && statb.st_size > 0)) + { + /* try to mmap the file */ +- content = mmap (NULL, statb.st_size, PROT_READ, MAP_SHARED, fd, 0); ++ content = (JOCTET *) mmap (NULL, statb.st_size, PROT_READ, MAP_SHARED, fd, 0); + + /* verify that the mmap was successful */ + if (G_LIKELY (content != (JOCTET *) MAP_FAILED)) +@@ -630,7 +630,7 @@ + } + + /* unmap the file content */ +- munmap (content, statb.st_size); ++ munmap ((void *) content, statb.st_size); + } + + /* close the file */ +@@ -638,9 +638,9 @@ + } + + return pixbuf; +-#endif +- ++#else + return NULL; ++#endif + } + + diff --git a/xfce-base/thunar/thunar-0.8.0-r2.ebuild b/xfce-base/thunar/thunar-0.8.0-r2.ebuild new file mode 100644 index 000000000000..8c70fb94f444 --- /dev/null +++ b/xfce-base/thunar/thunar-0.8.0-r2.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/xfce-base/thunar/thunar-0.8.0-r2.ebuild,v 1.1 2007/02/12 19:14:05 drac Exp $ + +inherit eutils xfce44 + +MY_P="${P/t/T}" +S="${WORKDIR}/${MY_P}" + +xfce44 + +DESCRIPTION="File manager" +HOMEPAGE="http://thunar.xfce.org" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86" +IUSE="doc dbus debug exif gnome hal plugins pcre startup-notification" + +RDEPEND=">=dev-lang/perl-5.6 + x11-libs/libSM + >=x11-libs/gtk+-2.6 + >=dev-libs/glib-2.6 + >=xfce-extra/exo-0.3.2 + >=x11-misc/shared-mime-info-0.15 + >=dev-util/desktop-file-utils-0.10 + >=xfce-base/libxfce4util-${XFCE_MASTER_VERSION} + virtual/fam + dbus? ( || ( dev-libs/dbus-glib =media-libs/freetype-2 + gnome? ( gnome-base/gconf ) + exif? ( >=media-libs/libexif-0.6 ) + >=media-libs/jpeg-6b + startup-notification? ( x11-libs/startup-notification ) + pcre? ( >=dev-libs/libpcre-6 ) + plugins? ( dbus? ( >=xfce-base/xfce4-panel-${XFCE_MASTER_VERSION} ) ) + gnome-base/librsvg" +DEPEND="${RDEPEND} + dev-util/pkgconfig + dev-util/intltool + doc? ( dev-util/gtk-doc )" + +XFCE_CONFIG="${XFCE_CONFIG} $(use_enable exif) $(use_enable gnome gnome-thumbnailers) \ + $(use_enable dbus) $(use_enable pcre)" + +pkg_setup() { + if use hal; then + XFCE_CONFIG="${XFCE_CONFIG} --with-volume-manager=hal" + else + XFCE_CONFIG="${XFCE_CONFIG} --with-volume-manager=none" + fi + + if use plugins && ! use dbus ; then + XFCE_CONFIG="${XFCE_CONFIG} --disable-tpa-plugin" + ewarn "Plugins requires ${PN} with dbus support. Enable dbus use flag" + ewarn "and re-emerge this ebuild if you want this feature." + epause 3 + fi + + if use hal && ! use dbus ; then + ewarn "HAL requires ${PN} with dbus support. Enable dbus use flag" + ewarn "and re-emerge this ebuild if you want this feature." + die "re-emerge with USE dbus" + fi +} + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}/${P}-jpeg.patch" +} + +DOCS="AUTHORS ChangeLog HACKING FAQ THANKS TODO README NEWS" + +xfce44_extra_package -- 2.26.2