Package: xfstt Version: 1.6-3 Severity: normal Tags: patch When xfstt is asked for FS_ListFontsWithXInfo it returns an FSBadImplementation error. This is not allowed according to the specs, and causes the application that triggered the ListFontsWithXInfo to hang.
The easy fix for this problem is changing #if 0 in xfstt.cc:1345 to #if 1 This causes xfstt to return an empty list in this case, which works well and is OK with the spec. Another possibility would be to return FSBadAlloc, which would also be OK according to the spec. Unfortunately error xfree86 doesn't seem to handle this case (violating the spec itself, cf. fs_wakeup(), err from fs_read_list_info() is never really checked there). The bug can be triggered by a call to XCreateFontSet(). I hit the bug by starting ion3 under an UTF-8 locale, in which case it calls XCreateFontSet(). Steps to reproduce: ================ START ================ host # locale >>> [EMAIL PROTECTED] >>> [EMAIL PROTECTED] >>> LC_NUMERIC="[EMAIL PROTECTED]" >>> LC_TIME=en_US.UTF8 >>> LC_COLLATE="[EMAIL PROTECTED]" >>> LC_MONETARY="[EMAIL PROTECTED]" >>> LC_MESSAGES=en_US.UTF8 >>> LC_PAPER="[EMAIL PROTECTED]" >>> LC_NAME="[EMAIL PROTECTED]" >>> LC_ADDRESS="[EMAIL PROTECTED]" >>> LC_TELEPHONE="[EMAIL PROTECTED]" >>> LC_MEASUREMENT="[EMAIL PROTECTED]" >>> LC_IDENTIFICATION="[EMAIL PROTECTED]" >>> LC_ALL= host # mkdir xfstt-chroot host # debootstrap sid xfstt-chroot http://ftp.debian.org/debian/ host # mount -t proc proc xfstt-chroot/proc host # mount -t devpts devpts xfstt-chroot/dev/pts host # # just entries for sid host # cp /etc/apt/sources.list xfstt-chroot/etc/apt/sources.list host # chroot xfstt-chroot /bin/bash chroot # apt-get update chroot # apt-get install xfstt ion3 tightvncserver x-window-system locales chroot # vi /etc/X11/XF86Config-4 < insert '''FontPath "unix/:7101"''' just below "unix/:7100" > chroot # adduser xyz chroot # su xyz chroot $ cd ~ chroot $ mkdir .vnc chroot $ echo "exec ion3" > .vnc/xstartup chroot $ chmod 755 .vnc/xstartup chroot $ vncserver :1 # use whatever display is free ================ END ================ ion3 then hangs, waiting for a reply from the xserver. I'm sure the bug is in xfstt and not in tightvnc (which uses the xfree86 code internally) or ion3 because * ion3 doesn't do any special magic, the XCreateFontSet call is pretty streight-forward. * the crash happens too when ion3 is started under xfree86 under a UTF-8 locale. * xfstt violates the X Font Server Protocol and the xserver doesn't check for that violation. Enabling UTF-8 serves no other purpose then to activate that special code-path that leads to XCreateFontSet(). Cheers, Greek0 -- System Information: Debian Release: 3.1 APT prefers unstable APT policy: (990, 'unstable'), (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.8r20050324 Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=UTF-8) Versions of packages xfstt depends on: ii debconf 1.4.46 Debian configuration management sy ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an ii libgcc1 1:3.4.3-12 GCC support library ii libstdc++5 1:3.3.5-12 The GNU Standard C++ Library v3 -- debconf information: xfstt/fonts_not_provided: * xfstt/default_port_changed: xfstt/listen_tcp: false
signature.asc
Description: Digital signature