[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#457487: kdm: Remote XDMCP login broken (segfault)

Package: kdm
Version: 4:3.5.8.dfsg.1-2
Severity: important
Tags: patch

When logging in on a remote xterminal via XDMCP kdm segfaults, causing the
session to die and the greeter to be redisplayed.

A backtrace of the crash (below) shows that we crash trying to create a
bogus DBUS entry.  Further investigation indicates the d->remoteHost is
NULL.  It looks like there are two different types of nonlocal session:
Localy manged X servers that connect to a remote XDMCP server, and remote X
terminals logging into this host via XDMCP.  remoteHost is only set in
the former case.

The patch below fixes the crash by only adding the dbus attribute if
remoteHost is known.


diff -ur clean/kdm/backend/consolekit.c kdebase-3.5.8.dfsg.1/kdm/backend/consolekit.c
--- clean/kdm/backend/consolekit.c	2007-12-22 18:11:56.000000000 +0000
+++ kdebase-3.5.8.dfsg.1/kdm/backend/consolekit.c	2007-12-22 17:58:37.000000000 +0000
@@ -461,7 +461,7 @@
 	add_param_string (&iter_struct, "x11-display", d->name);
 	add_param_boolean (&iter_struct, "is-local", ((d->displayType & d_location) == dLocal));
 #ifdef XDMCP
-	if ((d->displayType & d_location) != dLocal) {
+	if ((d->displayType & d_location) != dLocal && d->remoteHost) {
 		add_param_string (&iter_struct, "remote-host-name", d->remoteHost);

#0  0x00002b44640e4fc0 in strlen () from /lib/libc.so.6
#4  0x000000000040a772 in add_param_string (iter_struct=0x7fff47acec60,
    key=0x41be0a "remote-host-name", value=0x0)
    at kdm/backend/consolekit.c:131
#5  0x000000000040aac7 in open_ck_session (pwent=<value optimized out>,
    at kdm/backend/consolekit.c:465
#6  0x0000000000416a1d in ManageSession (d=0x62aea0)
    at kdm/backend/session.c:634
#7  0x000000000040d81d in StartDisplayP2 (d=0x62aea0)
    at kdm/backend/dm.c:1395
#8  0x0000000000419cda in manage (from=0x7fff47acef90, fromlen=28,
    length=<value optimized out>, fd=9)
    at kdm/backend/xdmcp.c:948
-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.22-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=ISO-8859-1)

Versions of packages kdm depends on:
ii  debconf [debconf-2.0]   1.5.17           Debian configuration management sy
ii  kdebase-bin             4:3.5.8.dfsg.1-2 core binaries for the KDE base mod
ii  kdebase-data            4:3.5.8.dfsg.1-2 shared data files for the KDE base
ii  kdelibs4c2a             4:3.5.8.dfsg.1-4 core libraries and binaries for al
ii  libc6                   2.7-5            GNU C Library: Shared libraries
ii  libdbus-1-3             1.1.2-1          simple interprocess messaging syst
ii  libgcc1                 1:4.2.2-4        GCC support library
ii  libpam-runtime       Runtime support for the PAM librar
ii  libpam0g             Pluggable Authentication Modules l
ii  libqt3-mt               3:3.3.7-9        Qt GUI Library (Threaded runtime v
ii  libstdc++6              4.2.2-4          The GNU Standard C++ Library v3
ii  libx11-6                2:1.0.3-7        X11 client-side library
ii  libxau6                 1:1.0.3-2        X11 authorisation library
ii  libxdmcp6               1:1.0.2-2        X11 Display Manager Control Protoc
ii  libxtst6                2:1.0.3-1        X11 Testing -- Resource extension 
ii  xbase-clients           1:7.3+8          miscellaneous X clients - metapack

Versions of packages kdm recommends:
ii  logrotate                     3.7.1-3    Log rotation utility
ii  xserver-xorg                  1:7.3+8    the X.Org X server

-- debconf information:
  kdm/stop_running_server_with_children: false
* shared/default-x-display-manager: kdm
  kdm/daemon_name: /usr/bin/kdm

Reply to: