J. Turnbull <stephen(a)xemacs.org> wrote:
ADSJ (Adam Sjøgren) writes:
> I am getting segmentation faults when running XEmacs on Ubuntu
8.04
> hardy on an amd64-machine.
Yup, probably a known bug in libpng. Unless you're using a
libpng
released since May (and since Hardy has been out for a few months IIRC
you aren't unless you upgraded yourself), you're vulnerable.
I have just upgraded to libpng 1.2.27 (backported from Ubuntu intrepid):
$ ldd `which xemacs` | grep png
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00002b674082b000)
$ wajig findfile /usr/lib/libpng12.so.0
libpng12-0: /usr/lib/libpng12.so.0
$ wajig status libpng12-0
Package Installed Previous Now State
=======================-===============-===============-===============-=====
libpng12-0 1.2.27-1nz1 1.2.15~beta5-3 1.2.15~beta5-3 install
$
I am running a debug-build () of the Ubuntu hardy xemacs21-packages to get
better backtraces:
$ COLUMNS=110 dpkg -l '*xemacs*' | grep ^ii | cut -c 5-48
xemacs21 21.4.21-1ubuntu3.1nz2
xemacs21-basesupport 2007.04.27-1
xemacs21-bin 21.4.21-1ubuntu3.1nz2
xemacs21-mule 21.4.21-1ubuntu3.1nz2
xemacs21-mulesupport 2007.04.27-1
xemacs21-support 21.4.21-1ubuntu3.1nz2
xemacs21-supportel 21.4.21-1ubuntu3.1nz2
$
The segmentation fault still happens on my machine.
Note that this is very similar to the problem with a png-file I reported
on powerpc earlier (<87prrzf9nn.fsf(a)topper.koldfront.dk>), which was
reproduced by Glynn Clements
(<18465.1600.318870.77985(a)cerise.gclements.plus.com>) with XEmacs
21.4.21 and libpng 1.2.26.
This is what happens on my machine with XEmacs 21.4.21 and libpng
1.2.27:
$ xemacs --vanilla /usr/lib/xemacs-21.4.21/etc/custom/reset-up.png
Warning: Missing charsets in String to FontSet conversion
Fatal error (11).
Your files have been auto-saved.
Use `M-x recover-session' to recover them.
Your version of XEmacs was distributed with a PROBLEMS file that may describe
your crash, and with luck a workaround. Please check it first, but do report
the crash anyway. Please report this bug by invoking M-x report-emacs-bug,
or by selecting `Send Bug Report' from the Help menu. If necessary, send
ordinary email to `xemacs-beta(a)xemacs.org'. *MAKE SURE* to include the XEmacs
configuration from M-x describe-installation, or equivalently the file
Installation in the top of the build tree.
*Please* try *hard* to obtain a C stack backtrace; without it, we are unlikely
to be able to analyze the problem. Locate the core file produced as a result
of this crash (often called `core' or `core.<process-id>', and located in
the directory in which you started XEmacs or your home directory), and type
gdb /usr/bin/xemacs core
then type `where' at the debugger prompt. No GDB on your system? You may
have DBX, or XDB, or SDB. (Ask your system administrator if you need help.)
If no core file was produced, enable them (often with `ulimit -c unlimited'
in case of future recurrance of the crash.
Lisp backtrace follows:
# (unwind-protect ...)
# (unwind-protect ...)
# (catch #<INTERNAL OBJECT (XEmacs bug?) (opaque-ptr, adr=0x99b228) 0x9c39d0>
...)
# (unwind-protect ...)
IHDR?%G�����%@gAMA%G����%@nce([png :data "%G��%@PNG
%G��%@0PLTE%G������%@GGH%G�Ë�Ë�Í������%@khj**)%G���%@恿デ���������ダXXV}}{%G����%@:<%G����%@,/8tEXtSoftwareXV
Version 3.10a Rev: 12/29/94 (PNG patch
1.2)%G��%@.I%G��%@DATx%G������%@l`%G�������%@J%G��������%@(xY^%G������%@I%G�����%@&%G���%@
*%G��%@2=N;0@%G����%@*x*%G��%@gz%G�����%@n%G�����%@WU%G��%@I%G������%@w%G��������%@5%G���%@+L%G����%@)LJ%G���%@B%G������������%@
%G�������%@y%G���%@
%G�î�¶%@z%G������%@ER%G��%@,%G������%@w%G������%@V%G������%@aOq%G������%@3%G��%@<%G����������%@ÁŁŁΗÙ��ŁΗÙ��āŁΗÙ��ŁÁΗØ��ŁΗ��¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½�`7^%G��������%@:/xs3tIME%G��%@(
%G�������%@tEXtCommentMade with
GIMP~e%G��%@IEND%G��%@B`%G��%@"] nil nil no-error)
# (unwind-protect ...)
# bind (type end start)
image-decode(1 490 png)
image-decode-buffer()
# bind (arg)
image-mode()
# bind (alist mode name keep-going)
# (unwind-protect ...)
# bind (just-from-file-name)
set-auto-mode()
byte-code("..." [set-auto-mode t] 1)
# (condition-case ... . ((error (byte-code
"%G���%@!\"%G�����%@" ... 4))))
# bind (find-file)
normal-mode(t)
# bind (nomodes after-find-file-from-revert-buffer noauto warn error)
after-find-file(nil t)
byte-code("..." [buffer-file-number number truename buffer-file-truename buf
buffer-file-name set-buffer-major-mode erase-buffer nil (byte-code
%G��������%@"%G����������%@"%G����%@"
[rawfile filename insert-file-contents-literally t insert-file-contents] 3) ((file-error
...)) abbreviate-file-name file-name-directory make-local-variable backup-inhibited t
after-find-file find-file-use-truenames default-directory backup-enable-predicate rawfile
error nowarn] 3)
# (condition-case ... . ((t (byte-code "%G��%@!%G����%@@
A\"%G��%@" ... 3))))
# (unwind-protect ...)
# bind (error number truename buf rawfile nowarn filename)
find-file-noselect("/usr/lib/xemacs-21.4.21/etc/custom/reset-up.png")
# bind (codesys filename)
find-file("/usr/lib/xemacs-21.4.21/etc/custom/reset-up.png")
# bind (dir file-count line end-of-options file-p arg tem)
command-line-1()
# bind (command-line-args-left)
command-line()
# (condition-case ... . ((t (byte-code " %G��%@" ... 1))))
# bind (error-data)
normal-top-level()
# (condition-case ... . error)
# (catch top-level ...)
Segmentation fault (core dumped)
$ gdb /usr/bin/xemacs core
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <
http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
Reading symbols from /usr/lib/libXaw.so.7...done.
Loaded symbols for /usr/lib/libXaw.so.7
Reading symbols from /usr/lib/libtiff.so.4...done.
Loaded symbols for /usr/lib/libtiff.so.4
Reading symbols from /usr/lib/libpng12.so.0...done.
Loaded symbols for /usr/lib/libpng12.so.0
Reading symbols from /usr/lib/libjpeg.so.62...done.
Loaded symbols for /usr/lib/libjpeg.so.62
Reading symbols from /usr/lib/libcompface.so.1...done.
Loaded symbols for /usr/lib/libcompface.so.1
Reading symbols from /usr/lib/libXpm.so.4...done.
Loaded symbols for /usr/lib/libXpm.so.4
Reading symbols from /usr/lib/libXmu.so.6...done.
Loaded symbols for /usr/lib/libXmu.so.6
Reading symbols from /usr/lib/libXt.so.6...done.
Loaded symbols for /usr/lib/libXt.so.6
Reading symbols from /usr/lib/libXext.so.6...done.
Loaded symbols for /usr/lib/libXext.so.6
Reading symbols from /usr/lib/libX11.so.6...done.
Loaded symbols for /usr/lib/libX11.so.6
Reading symbols from /usr/lib/libSM.so.6...done.
Loaded symbols for /usr/lib/libSM.so.6
Reading symbols from /usr/lib/libICE.so.6...done.
Loaded symbols for /usr/lib/libICE.so.6
Reading symbols from /usr/lib/libdb-4.6.so...done.
Loaded symbols for /usr/lib/libdb-4.6.so
Reading symbols from /usr/lib/libgpm.so.1...done.
Loaded symbols for /usr/lib/libgpm.so.1
Reading symbols from /lib/libncurses.so.5...done.
Loaded symbols for /lib/libncurses.so.5
Reading symbols from /usr/lib/libldap_r-2.4.so.2...done.
Loaded symbols for /usr/lib/libldap_r-2.4.so.2
Reading symbols from /lib/libm.so.6...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libutil.so.1...done.
Loaded symbols for /lib/libutil.so.1
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /usr/lib/liblber-2.4.so.2...done.
Loaded symbols for /usr/lib/liblber-2.4.so.2
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /usr/lib/libXau.so.6...done.
Loaded symbols for /usr/lib/libXau.so.6
Reading symbols from /usr/lib/libxcb-xlib.so.0...done.
Loaded symbols for /usr/lib/libxcb-xlib.so.0
Reading symbols from /usr/lib/libxcb.so.1...done.
Loaded symbols for /usr/lib/libxcb.so.1
Reading symbols from /lib/libpthread.so.0...done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /usr/lib/libsasl2.so.2...done.
Loaded symbols for /usr/lib/libsasl2.so.2
Reading symbols from /usr/lib/libgnutls.so.13...done.
Loaded symbols for /usr/lib/libgnutls.so.13
Reading symbols from /lib/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/lib/libXdmcp.so.6...done.
Loaded symbols for /usr/lib/libXdmcp.so.6
Reading symbols from /usr/lib/libtasn1.so.3...done.
Loaded symbols for /usr/lib/libtasn1.so.3
Reading symbols from /lib/libgcrypt.so.11...done.
Loaded symbols for /lib/libgcrypt.so.11
Reading symbols from /lib/libgpg-error.so.0...done.
Loaded symbols for /lib/libgpg-error.so.0
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /lib/libnss_nis.so.2...done.
Loaded symbols for /lib/libnss_nis.so.2
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /usr/lib/libXcursor.so.1...done.
Loaded symbols for /usr/lib/libXcursor.so.1
Reading symbols from /usr/lib/libXrender.so.1...done.
Loaded symbols for /usr/lib/libXrender.so.1
Reading symbols from /usr/lib/libXfixes.so.3...done.
Loaded symbols for /usr/lib/libXfixes.so.3
Core was generated by `xemacs --vanilla
/usr/lib/xemacs-21.4.21/etc/custom/reset-up.png'.
Program terminated with signal 11, Segmentation fault.
[New process 7845]
#0 0x00002af8f369e527 in kill () from /lib/libc.so.6
(gdb) where
#0 0x00002af8f369e527 in kill () from /lib/libc.so.6
#1 0x000000000048db5e in fatal_error_signal (sig=11) at emacs.c:642
#2 <signal handler called>
#3 0x00002af8f36e3bcb in free () from /lib/libc.so.6
#4 0x00002af8f212e1c2 in ?? () from /usr/lib/libX11.so.6
#5 0x00000000005d434c in x_init_image_instance_from_eimage (ii=0xdc66d0, width=63,
height=19, slices=1,
eimage=0xdcae00
"%G���������������������������������������������������������������������������������������������%@}}{%G������%@...,
dest_mask=-1, instantiator=13630976, domain=13199840) at glyphs-x.c:988
#6 0x0000000000531f5a in png_instantiate (image_instance=<value optimized out>,
instantiator=13630976, pointer_fg=<value optimized out>,
pointer_bg=<value optimized out>, dest_mask=-1, domain=13199840) at
glyphs-eimage.c:1045
#7 0x0000000000527983 in instantiate_image_instantiator (governing_domain=12037056,
domain=13199840, instantiator=13630976, pointer_fg=47248758830320,
pointer_bg=47248758830320, dest_mask=-1, glyph=47248758830320) at glyphs.c:776
#8 0x000000000052c1ab in make_image_instance_1 (data=13630976, domain=13199840,
dest_types=47248758830320) at glyphs.c:1476
#9 0x0000000000492c52 in call_with_suspended_errors_1 (opaque_arg=<value optimized
out>) at eval.c:2112
#10 0x000000000049108e in internal_catch (tag=<value optimized out>, func=0x492af0
<call_with_suspended_errors_1>, arg=10379568, threw=0x7fffb9f90bdc) at eval.c:1318
#11 0x0000000000492917 in call_with_suspended_errors (fun=0x52c050
<make_image_instance_1>, retval=47248758830320, class=47248758794320, errb=<value
optimized out>,
nargs=3) at eval.c:2205
#12 0x0000000000523802 in Fmake_image_instance (data=13630976, domain=47248758830320,
dest_types=47248758830320, noerror=<value optimized out>) at glyphs.c:1579
#13 0x0000000000496cc6 in Ffuncall (nargs=<value optimized out>,
args=0x7fffb9f90da8) at eval.c:3536
#14 0x000000000046569d in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0xd04640) at bytecode.c:748
#15 0x0000000000467c5f in funcall_compiled_function (fun=14506472, nargs=3,
args=0x7fffb9f90fb0) at bytecode.c:519
#16 0x0000000000496b8e in Ffuncall (nargs=<value optimized out>,
args=0x7fffb9f90fa8) at eval.c:3572
#17 0x000000000046569d in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0xd062d0) at bytecode.c:748
#18 0x0000000000467c5f in funcall_compiled_function (fun=14506328, nargs=0,
args=0x7fffb9f91190) at bytecode.c:519
#19 0x0000000000496b8e in Ffuncall (nargs=<value optimized out>,
args=0x7fffb9f91188) at eval.c:3572
#20 0x000000000046569d in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0xd06610) at bytecode.c:748
#21 0x0000000000467c5f in funcall_compiled_function (fun=14506856, nargs=0,
args=0x7fffb9f91360) at bytecode.c:519
#22 0x0000000000496b8e in Ffuncall (nargs=<value optimized out>,
args=0x7fffb9f91358) at eval.c:3572
#23 0x000000000046569d in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0x2af8f58e6828) at bytecode.c:748
#24 0x0000000000467c5f in funcall_compiled_function (fun=47248760853952, nargs=0,
args=0x7fffb9f91540) at bytecode.c:519
#25 0x0000000000496b8e in Ffuncall (nargs=<value optimized out>,
args=0x7fffb9f91538) at eval.c:3572
#26 0x000000000046569d in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0x2af8f58e6948) at bytecode.c:748
#27 0x00000000004677ea in Fbyte_code (instructions=<value optimized out>,
constants=47248760006952, stack_depth=<value optimized out>) at bytecode.c:2407
#28 0x000000000049600f in Feval (form=47248759529344) at eval.c:3335
#29 0x0000000000492e26 in condition_case_1 (handlers=<value optimized out>,
bfun=0x4952a0 <Feval>, barg=47248759529344, hfun=0x4991b0
<run_condition_case_handlers>,
harg=47248758754096) at eval.c:1652
#30 0x0000000000464a6c in execute_rare_opcode (stack_ptr=0x7fffb9f91948,
program_ptr=<value optimized out>, opcode=<value optimized out>) at
bytecode.c:1273
#31 0x0000000000465d6c in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0x2af8f58e69a0) at bytecode.c:658
#32 0x0000000000467c5f in funcall_compiled_function (fun=47248760854048, nargs=1,
args=0x7fffb9f91b20) at bytecode.c:519
#33 0x0000000000496b8e in Ffuncall (nargs=<value optimized out>,
args=0x7fffb9f91b18) at eval.c:3572
#34 0x000000000046569d in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0x2af8f58e72d0) at bytecode.c:748
#35 0x0000000000467c5f in funcall_compiled_function (fun=47248760854768, nargs=2,
args=0x7fffb9f91d00) at bytecode.c:519
#36 0x0000000000496b8e in Ffuncall (nargs=<value optimized out>,
args=0x7fffb9f91cf8) at eval.c:3572
#37 0x000000000046569d in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0x2af8f58d3c78) at bytecode.c:748
#38 0x00000000004677ea in Fbyte_code (instructions=<value optimized out>,
constants=47248759929944, stack_depth=<value optimized out>) at bytecode.c:2407
#39 0x000000000049600f in Feval (form=47248759382584) at eval.c:3335
#40 0x0000000000492e26 in condition_case_1 (handlers=<value optimized out>,
bfun=0x4952a0 <Feval>, barg=47248759382584, hfun=0x4991b0
<run_condition_case_handlers>,
harg=47248758788560) at eval.c:1652
#41 0x0000000000464a6c in execute_rare_opcode (stack_ptr=0x7fffb9f921b8,
program_ptr=<value optimized out>, opcode=<value optimized out>) at
bytecode.c:1273
#42 0x0000000000465d6c in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0x2af8f58e9028) at bytecode.c:658
#43 0x0000000000467c5f in funcall_compiled_function (fun=47248760857024, nargs=1,
args=0x7fffb9f923b8) at bytecode.c:519
---Type <return> to continue, or q <return> to quit---
#44 0x0000000000496b8e in Ffuncall (nargs=<value optimized out>,
args=0x7fffb9f923b0) at eval.c:3572
#45 0x000000000046569d in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0x2af8f58e8700) at bytecode.c:748
#46 0x0000000000467c5f in funcall_compiled_function (fun=47248760856448, nargs=1,
args=0x7fffb9f92580) at bytecode.c:519
#47 0x0000000000496b8e in Ffuncall (nargs=<value optimized out>,
args=0x7fffb9f92578) at eval.c:3572
#48 0x000000000046569d in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0x2af8f58bbea0) at bytecode.c:748
#49 0x0000000000467c5f in funcall_compiled_function (fun=47248760800336, nargs=0,
args=0x7fffb9f92770) at bytecode.c:519
#50 0x0000000000496b8e in Ffuncall (nargs=<value optimized out>,
args=0x7fffb9f92768) at eval.c:3572
#51 0x000000000046569d in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0x2af8f58bd098) at bytecode.c:748
#52 0x0000000000467c5f in funcall_compiled_function (fun=47248760801632, nargs=0,
args=0x7fffb9f928a0) at bytecode.c:519
#53 0x0000000000495b3b in Feval (form=47248759157296) at eval.c:3392
#54 0x0000000000492e26 in condition_case_1 (handlers=<value optimized out>,
bfun=0x4952a0 <Feval>, barg=47248759157296, hfun=0x4991b0
<run_condition_case_handlers>,
harg=47248758788560) at eval.c:1652
#55 0x0000000000464a6c in execute_rare_opcode (stack_ptr=0x7fffb9f92bb8,
program_ptr=<value optimized out>, opcode=<value optimized out>) at
bytecode.c:1273
#56 0x0000000000465d6c in execute_optimized_program (program=<value optimized out>,
stack_depth=<value optimized out>, constants_data=0x2af8f58bde30) at bytecode.c:658
#57 0x0000000000467c5f in funcall_compiled_function (fun=47248760803072, nargs=0,
args=0x7fffb9f92d00) at bytecode.c:519
#58 0x0000000000495b3b in Feval (form=47248759003624) at eval.c:3392
#59 0x0000000000492e26 in condition_case_1 (handlers=<value optimized out>,
bfun=0x4952a0 <Feval>, barg=47248759003624, hfun=0x472660 <cmd_error>,
harg=47248758830320)
at eval.c:1652
#60 0x00000000004727f0 in top_level_1 (dummy=<value optimized out>) at
cmdloop.c:206
#61 0x000000000049108e in internal_catch (tag=<value optimized out>, func=0x4727c0
<top_level_1>, arg=47248758830320, threw=0x0) at eval.c:1318
#62 0x00000000004728d7 in initial_command_loop (load_me=<value optimized out>) at
cmdloop.c:285
#63 0x000000000048e46a in xemacs_21_4_21_x86_64_pc_linux (argc=3, argv=0x7fffb9f93368,
envp=<value optimized out>, restart=0) at emacs.c:2460
#64 0x000000000048f0d0 in main (argc=<value optimized out>, argv=<value optimized
out>, envp=<value optimized out>) at emacs.c:2829
(gdb) quit
$
Best regards,
Adam
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta