xemacs crashes when using MH-E to view message with PNG attachment
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
xemacs21 (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
An email that contains a PNG attachment can crash XEmacs 21.4.22 when viewed using MH-E. I'll attach a C stacktrace from gdb and a sample message. I've reproduced this on x86_64 and i686 systems, both running Ubuntu 11.10. This appears to be the same as XEmacs issue570 (http://
http://
ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: xemacs21 21.4.22-3.1ubuntu1
ProcVersionSign
Uname: Linux 3.0.0-15-generic x86_64
ApportVersion: 1.23-0ubuntu4
Architecture: amd64
Date: Mon Jan 30 16:55:23 2012
Dependencies:
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
PackageArchitec
ProcEnviron:
LC_TIME=C
PATH=(custom, user)
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: xemacs21
UpgradeStatus: No upgrade log present (probably fresh install)
I verified the fix by building 21.4.22 from the original source tarball, reproducing the crash, applying the patch, and trying to reproduce the crash.
Here's the stack information from gdb:
(gdb) run -vanilla
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /usr/bin/xemacs -vanilla bold-r- *-*-*-120- *-*-*-* -iso8859- *" to type FontStruct 64-linux- gnu/libc. so.6(+0x78a96) [0x7ffff5121a96 ] 64-linux- gnu/libz. so.1(inflateEnd +0x34)[ 0x7ffff4a8b424] 64-linux- gnu/libpng12. so.0(png_ read_destroy+ 0x21f)[ 0x7ffff76f4bbf] 64-linux- gnu/libpng12. so.0(png_ destroy_ read_struct+ 0x7a)[0x7ffff76 f4e5a] xemacs[ 0x4d4c24] xemacs( unbind_ to_hairy+ 0x63)[0x470883] xemacs( unbind_ to+0x86) [0x470966] xemacs[ 0x4d5428] xemacs[ 0x4d0c84] xemacs[ 0x4d2cf9] xemacs[ 0x472436] xemacs( internal_ catch+0xb1) [0x471211] xemacs( call_with_ suspended_ errors+ 0x224)[ 0x477194] xemacs[ 0x529486] xemacs( specifier_ instance+ 0x2a1)[ 0x529911] xemacs( glyph_image_ instance+ 0x27)[0x4cda57] xemacs( glyph_width+ 0x16)[0x4cffb6] xemacs( Fglyph_ width+0x21) [0x4d0301] xemacs( Ffuncall+ 0x44e)[ 0x473cae] xemacs[ 0x452805] xemacs( funcall_ compiled_ function+ 0x17c)[ 0x452ccc] xemacs( Ffuncall+ 0x345)[ 0x473ba5] xemacs[ 0x452805] xemacs( funcall_ compiled_ function+ 0x17c)[ 0x452ccc] xemacs( Ffuncall+ 0x345)[ 0x473ba5] xemacs[ 0x452805] xemacs( funcall_ compiled_ function+ 0x17c)[ 0x452ccc] xemacs( Ffuncall+ 0x345)[ 0x473ba5] xemacs[ 0x4bdda5] xemacs( Fmapcar+ 0xf9)[0x4c0019] xemacs( Ffuncall+ 0x44e)[ 0x473cae] xemacs[ 0x452805] xemacs( funcall_ compiled_ function+ 0x17c)[ 0x452ccc] xemacs( Ffuncall+ 0x345)[ 0x473ba5] xemacs[ 0x452805] xemacs( funcall_ compiled_ function+ 0x17c)[ 0x452ccc] xemacs( Ffuncall+ 0x345)[ 0x473ba5] xemacs[ 0x452805] xemacs( Fbyte_code+ 0xaa)[0x452afa] xemacs( Feval+0x971) [0x475a31] xemacs( condition_ case_1+ 0x113)[ 0x4774a3] xemacs( execute_ rare_opcode+ 0x1e6)[ 0x451776] xemacs[ 0x452925] xemacs( funcall_ compiled_ function+ 0x17c)[ 0x452ccc] xemacs( Ffuncall+ 0x345)[ 0x473ba5] xemacs[ 0x452805] xemacs( funcall_ compiled_ function+ 0x17c)[ 0x452ccc] xemacs( Ffuncall+ 0x345)[ 0x473ba5] xemacs[ 0x452805] xemacs( funcall_ compiled_ function+ 0x17c)[ 0x452ccc] xemacs( Ffuncall+ 0x345)[ 0x473ba5] xemacs[ 0x452805] xemacs( funcall_ compiled_ function+ 0x17c)[ 0x452ccc] xemacs( Ffuncall+ 0x345)[ 0x473ba5] xemacs( apply1+ 0x7f)[0x4750af] xemacs( Fcall_interacti vely+0x1467) [0x4546e7] xemacs( Fcommand_ execute+ 0x17f)[ 0x47676f] xemacs[ 0x4a237d] xemacs( Fdispatch_ event+0x172) [0x4a4082] xemacs( Fcommand_ loop_1. ..
[Thread debugging using libthread_db enabled]
Warning: Cannot convert string "-*-helvetica-
*** glibc detected *** /usr/bin/xemacs: munmap_chunk(): invalid pointer: 0x000000000124fac0 ***
======= Backtrace: =========
/lib/x86_
/lib/x86_
/lib/x86_
/lib/x86_
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/