thunar 0.8.0 will crash on Linux/SPARC when entering a folder with jpeg files with exif info with a SIGBUS (usually when doing bad pointer arithmetic / unaligned memory accesses). Trace: gustavoz@ayanami ~/test $ gdb thunar GNU gdb 6.6 Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "sparc-unknown-linux-gnu"... Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /usr/bin/thunar [Thread debugging using libthread_db enabled] [New Thread -154294080 (LWP 18588)] [New Thread -325452896 (LWP 18591)] [New Thread -333857888 (LWP 18592)] [New Thread -342377568 (LWP 18593)] [New Thread -350766176 (LWP 18594)] [New Thread -359154784 (LWP 18595)] Program received signal SIGBUS, Bus error. [Switching to Thread -359154784 (LWP 18595)] 0xf7f38d6c in tvtj_exif_get_ulong (exif=0xea97b158, data=0xea06007e) at thunar-vfs-thumb-jpeg.c:347 warning: Source file is more recent than executable. 347 if (G_UNLIKELY (exif->big_endian)) (gdb) bt full #0 0xf7f38d6c in tvtj_exif_get_ulong (exif=0xea97b158, data=0xea06007e) at thunar-vfs-thumb-jpeg.c:347 No locals. #1 0xf7f38e28 in tvtj_exif_parse_ifd (exif=0xea97b158, ifd_ptr=0xea060076 "i\207\004", ifd_len=3926261886) at thunar-vfs-thumb-jpeg.c:389 subifd_ptr = (const guchar *) 0xea06007e "�" subifd_off = 3935809880 value = 0 tag = 34665 n = 1 #2 0xf7f3930c in thunar_vfs_thumb_jpeg_load ( path=0x1bfe <Address 0x1bfe out of bounds>, size=128) at thunar-vfs-thumb-jpeg.c:500 statb = {st_dev = 769, st_ino = 11911876, st_mode = 33188, st_nlink = 1, st_uid = 4510, st_gid = 100, st_rdev = 0, __pad2 = 0, st_size = 1162502, st_blksize = 4096, st_blocks = 2280, st_atim = { tv_sec = 1170874553, tv_nsec = 0}, st_mtim = {tv_sec = 1170874546, tv_nsec = 0}, st_ctim = {tv_sec = 1170874546, tv_nsec = 0}, __unused4 = 0, __unused5 = 0} pixbuf = (GdkPixbuf *) 0x1bfe content = (JOCTET *) 0xea060000 "����\033�Exif" fd = 16 ---Type <return> to continue, or q <return> to quit--- #3 0xf7f3a068 in IA__thunar_vfs_thumb_factory_generate_thumbnail ( factory=0xcf900, info=0x247354) at thunar-vfs-thumb.c:919 name = (const gchar *) 0x247354 "image/jpeg" pixbuf = (GdkPixbuf *) 0x0 scaled = (GdkPixbuf *) 0xa tmp_path = (gchar *) 0x0 command = (gchar *) 0xa <Address 0xa out of bounds> script = (gchar *) 0x0 path = (gchar *) 0x25f520 "/home/gustavoz/test/cumple05 015.jpg" status = 0 size = 128 fd = 0 #4 0x00058580 in thunar_thumbnail_generator_thread (user_data=0xac6c8) at thunar-thumbnail-generator.c:249 info = (ThunarThumbnailInfo *) 0x25cf18 icon = (GdkPixbuf *) 0x0 #5 0xf7644594 in ?? () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #6 0xf7644594 in ?? () from /usr/lib/libglib-2.0.so.0 No symbol table info available. Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Fixed with revision 24958. 2007-02-12 Benedikt Meurer <benny@xfce.org> * thunar-vfs/thunar-vfs-thumb-jpeg.c: Fix unaligned memory access in exif code. Bug #2880.