Fix unaligned memory access in exif code -patch from upstream bugzilla.
authorSamuli Suominen <ssuominen@gentoo.org>
Mon, 12 Feb 2007 19:14:05 +0000 (19:14 +0000)
committerSamuli Suominen <ssuominen@gentoo.org>
Mon, 12 Feb 2007 19:14:05 +0000 (19:14 +0000)
Package-Manager: portage-2.1.2-r9

xfce-base/thunar/ChangeLog
xfce-base/thunar/Manifest
xfce-base/thunar/files/digest-thunar-0.8.0-r2 [new file with mode: 0644]
xfce-base/thunar/files/thunar-0.8.0-jpeg.patch [new file with mode: 0644]
xfce-base/thunar/thunar-0.8.0-r2.ebuild [new file with mode: 0644]

index caf28e7f1177bb7f76c912ab571a56e7ccd897e6..d66b470d65a94e319cab27b9c0853cbad90f3089 100644 (file)
@@ -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 <drac@gentoo.org>
+  +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)
 
index 53d6c0a88c182e416ce7b68842c2e5a4e9e90ab9..f625c6d063479d2f670ffbffae14fd28ccec5fc1 100644 (file)
@@ -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 (file)
index 0000000..3615497
--- /dev/null
@@ -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 (file)
index 0000000..5c9b28f
--- /dev/null
@@ -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 <benny@xfce.org>
+  *
+@@ -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 (file)
index 0000000..8c70fb9
--- /dev/null
@@ -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 <sys-apps/dbus-1 ) )
+       hal? ( sys-apps/hal )
+       >=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