Author: benny
Date: 2007-02-12 18:16:29 +0000 (Mon, 12 Feb 2007)
New Revision: 24958

Modified:
   thunar/trunk/ChangeLog
   thunar/trunk/thunar-vfs/thunar-vfs-thumb-jpeg.c
Log:
2007-02-12      Benedikt Meurer <[EMAIL PROTECTED]>

        * thunar-vfs/thunar-vfs-thumb-jpeg.c: Fix unaligned memory access in
          exif code. Bug #2880.




Modified: thunar/trunk/ChangeLog
===================================================================
--- thunar/trunk/ChangeLog      2007-02-12 17:56:10 UTC (rev 24957)
+++ thunar/trunk/ChangeLog      2007-02-12 18:16:29 UTC (rev 24958)
@@ -1,5 +1,10 @@
 2007-02-12     Benedikt Meurer <[EMAIL PROTECTED]>
 
+       * thunar-vfs/thunar-vfs-thumb-jpeg.c: Fix unaligned memory access in
+         exif code. Bug #2880.
+
+2007-02-12     Benedikt Meurer <[EMAIL PROTECTED]>
+
        * thunar-vfs/thunar-vfs-path-private.h: Fix compilation with the
          Sun Studio 11 compiler based on patch from William Bonnet
          <[EMAIL PROTECTED]>. Bug #2899.

Modified: thunar/trunk/thunar-vfs/thunar-vfs-thumb-jpeg.c
===================================================================
--- thunar/trunk/thunar-vfs/thunar-vfs-thumb-jpeg.c     2007-02-12 17:56:10 UTC 
(rev 24957)
+++ thunar/trunk/thunar-vfs/thunar-vfs-thumb-jpeg.c     2007-02-12 18:16:29 UTC 
(rev 24958)
@@ -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]);
 }
 
 

_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to