After upgrade to libxml2-2.6.32-r1 from libxml2-2.6.32 for security fix, gdm crush when start with
the error message on dialog:
"The greeter application appears to be crashing. Attempting to use a different one."
Steps to Reproduce:
1. upgrade libxml2 to 2.6.32-r1
2. restart gdm
Portage 126.96.36.199 (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.25-gentoo-r7 i686)
System uname: 2.6.25-gentoo-r7 i686 AMD Athlon(tm) 64 X2 Dual Core Processor 3600+
Timestamp of tree: Sat, 23 Aug 2008 03:46:01 +0000
distcc (dcc_mkdir) ERROR: mkdir /var/tmp/portage/.distcc/state failed: No such file or directory [disabled]
ccache version 2.4 [enabled]
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python: 2.4.4-r14, 2.5.2-r7
sys-devel/autoconf: 2.13, 2.61-r2
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1
CFLAGS="-march=athlon64 -msse3 -O2 -pipe -fomit-frame-pointer -mno-tls-direct-seg-refs"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-march=athlon64 -msse3 -O2 -pipe -fomit-frame-pointer -mno-tls-direct-seg-refs"
FEATURES="buildsyspkg ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTDIR_OVERLAY="/usr/portage/local/layman/pro-audio /usr/portage/local/layman/gnome /usr/portage/local/layman/emacs"
USE="3dnow 3dnowext X acl alsa arts avi berkdb bitmap-fonts bluetooth bzip2 cairo cdr cjk cli cracklib crypt dbus dlloader dri dvd dvdr eds emboss encode esd exif fam ffmpeg firefox flac fortran gdbm gif gnome gnutella gpm gstreamer gtk gtk2 hal hddtemp hvm iconv ipv6 isdnlog jpeg libg++ mad midi mikmod mmx mp3 mpeg mudflap ncurses nls nptl nptlonly ogg opengl openmp pam pcre pdflib perl png pppd python quicktime rar readline real reflection sdl session spell spl sqlite sse sse2 ssl startup-notification svg sysfs tcl tcpd tiff timidity tk truetype truetype-fonts type1-fonts udev unicode vhosts vorbis win32codecs x264 x86 xattr xml xorg xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="zh_CN" USERLAND="GNU" VIDEO_CARDS="nvidia vesa"
Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Noticed indepently too now :(
Assessing the situation now, as -r1 is supposed to be fixing a security bug
Upstream is http://bugzilla.gnome.org/show_bug.cgi?id=549087
I have package.masked libxml-2.6.32-r1 until this is sorted out.
gdm not working is a worse DoS than a chance of the other possible DoS that the patch in libxml2-2.6.32-r1 fixes.
I think that this goes beyond just gdm. When I upgraded to libxml2 yesterday I found that my panel died after a while.
I tried to fix that by logging out and in, but then noticed that gdm had the problem described in this bug. I don't really have time to dive into this at the moment, but reverting to libxml2-2.6.32 fixed things again.
Yes, other things using librsvg to parse stuff including entities are affected as well. A recompile of librsvg might help too, but for now we just have libxml-2.6.32-r1 p.masked until we commit a version of the patch that doesn't break ABI.
Also on the relevant debian bug there is mentions of strigi (KDE4 stuff) breaking on this too.
To clarify further, panels and the like die only if you use a gtk+ theme that uses SVGs and entities in a manner that causes this. Probably when using the gtk+ theme engine librsvg provides.
I am aware of all the details, I just need to take time to figure out what patch to take that doesn't break ABI. There are a few patches floating around that abuse an already existing struct field instead of adding a new one (nbEntities)
Turned out libxml2-2.7.0 restored ABI before release without it being mentioned in the relevant bugs that I monitored or looked at. libxml2-2.7.1 is now in the tree, and the problematic 2.7.32-r1 is removed.
(In reply to comment #7)
> Turned out libxml2-2.7.0 restored ABI before release without it being mentioned
> in the relevant bugs that I monitored or looked at. libxml2-2.7.1 is now in the
> tree, and the problematic 2.7.32-r1 is removed.
I'm afraid it isn't. I still have gdm 2.20.7 and 2.20.8 segfaulting with dmesg saying that gdm segfaults in librsvg. (tried both librsvg 2.20.2 and 2.20.3) Also tried reemerging gdm and librsvg. With libxml2-2.6.32 everything works.
Works great for me and supposedly all the arch teams when upgrading from a working 2.6.32 to 2.7.1. As we can't reproduce you will need to provide quite a bit more information for us to be able to do anything.
(In reply to comment #9)
> Works great for me and supposedly all the arch teams when upgrading from a
> working 2.6.32 to 2.7.1. As we can't reproduce you will need to provide quite a
> bit more information for us to be able to do anything.
Finally made it work by unprelinking all the packages involved, ummerging gdm, libxml2, librsvg and emerging them again. Sorry for false alert. [but dynamic libraries in Linux are surprising me more and more.]