[Fontconfig] fontconfig or Xft bug? Segmentation fault with dangling symlink

Anthony Fok fontconfig@fontconfig.org
Wed, 7 May 2003 04:46:45 +0800

Hello Keith,

While doing some testing with Firefly's fix for mixed AA and non-AA
patch (which I think you fixed already, but not yet in XFree86 4.3.0
etc. and thus not yet propagated to most distributions), I tried to
reproduce the problem on Debian (unstable/sid), and move the Arial and
Verdana TrueType fonts out of the way so I could have only the bitmap
helvetica left.  After that, "xfd -fa arial-24" segfaults.  It is
likely triggered by a dangling symlink.

    In /etc/fonts/fonts.conf:


	Actual font file

	Symlink to /usr/share/fonts/truetype/Arial.ttf
	(Yes, that's the design of defoma Debian Font Manager.)

    Not sure if it matters: I don't have

Steps to reproduce:

  1. Just to make sure everything is in a clean state, I removed

  2. "xfd -fa arial-24" works fine.

  3. Move /usr/share/fonts/truetype/Arial.ttf out of the way.

  4. "xfd -fa arial-24" now shows error:

	Warning: Cannot convert string "arial-24" to type XftFont
	Segmentation fault

At this point, ~/.fonts.cache-1 was automatically updated with the
"/usr/share/fonts/truetype/Arial.ttf" entry removed, but the entry for
"/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType/Arial.ttf" still
lingers, which is okay, I suppose.  :-)

XftFontClose() is called twice though: (I installed your latest
render-0.8, xrender-0.8.2 and xft-2.1.2 in /tmp/dest)

$ LD_LIBRARY_PATH=/tmp/dest/usr/X11R6/lib gdb --args ~/xfd -fa arial-24
(gdb) bt
#0  0x0804a8c5 in XftFontClose () at xftfreetype.c:995
#1  0x401a57b0 in vendorShellWidgetClass () from /usr/X11R6/lib/libXt.so.6
#2  0x40170301 in XtInitializeWidgetClass () from /usr/X11R6/lib/libXt.so.6
#3  0x401707ef in XtInitializeWidgetClass () from /usr/X11R6/lib/libXt.so.6
#4  0x40170c10 in _XtCreateWidget () from /usr/X11R6/lib/libXt.so.6
#5  0x40170e83 in XtCreateManagedWidget () from /usr/X11R6/lib/libXt.so.6
#6  0x08049822 in XftFontClose () at xftfreetype.c:995
#7  0x402b0a51 in __libc_start_main () from /lib/libc.so.6

The xftfreetype.c here is from xft-2.1.2.

Thanks in advance!



P.S. I know I probably should use bugzilla, but I'm too sleepy now, and
     I'll probably forget to report it if I don't do it now, so... :-)

Anthony Fok Tung-Ling
ThizLinux Laboratory   <anthony@thizlinux.com> http://www.thizlinux.com/
Debian Chinese Project <foka@debian.org>       http://www.debian.org/intl/zh/
Come visit Our Lady of Victory Camp!           http://www.olvc.ab.ca/