[gdm-list] [Fwd: About GDM XDMCP]
- From: Ray Strode <rstrode redhat com>
- To: gdm-list gnome org
- Cc: mariodebian <mariodebian gmail com>
- Subject: [gdm-list] [Fwd: About GDM XDMCP]
- Date: Wed, 16 Jun 2010 17:46:52 -0400
Hi Mario,
I'm just forwarding this mail to the list so others can jump into the
conversation.
--Ray
-------- Forwarded Message --------
From: mariodebian <mariodebian gmail com>
To: rstrode redhat com
Subject: About GDM XDMCP
Date: Wed, 16 Jun 2010 21:15:27 +0200
Hi
First of all excuse me to send this mail to you directly instead of
using GNOME bugzilla.
I'm trying to run GDM with XDMCP in a Debian unstable system
(gdm is build with enable-ipv6=yes and Debian and
set /proc/sys/net/ipv6/bindv6only to 1
with gdm 2.30.2
See this bug:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=579033
without patches log says
gdm3[21907]: DEBUG(+): GdmXdmcpDisplayFactory: decode_packet:
GIOCondition 1
gdm3[21907]: DEBUG(+): GdmXdmcpDisplayFactory: Could not create XDMCP
buffer!
I compare GDM code with XDM or KDM and found that socket len variable is
initialized before calling XdmcpFill()
I just found this commit in git:
http://git.gnome.org/browse/gdm/commit/?id=86ac166294f0fc8f662031167066acf1928cf139
and tried with bad results...
gdm crash (see attached gdm.xdmcp.crash.txt)
My patch (95_xdmcp_fill_fix.patch) add more debug info in
decode_packet() function and gdm-address.c
I discover another bug in common/gdm-address.c
in gdm_address_debug() you call _gdm_address_debug with ¿local vars? and
_gdm_debug_address don't show hostname, hosts or port.
In gdm_address_debug the vars are printed OK.
Why this code ????
hostname = NULL;
host = NULL;
port = NULL;
in _gdm_debug_address()
NOTE:
I run "Xephyr :1 -query 192.168.0.3"
192.168.0.3 is when GDM runs with XDMCP enabled
WILLING is not send
Thanks for your work in GDM
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): GdmXdmcpDisplayFactory: decode_packet: GIOCondition 1
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): decode_packet() XdmcpFill done
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): decode_packet() XdmcpReadHeader done
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): decode_packet() gdm_address_new_from_sockaddr done
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): gdm_address_get_numeric_info() return host=::ffff:192.168.0.3 port=36315 res(getnameinfo)=0 return=1
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): gdm_address_debug() hostname=thinkpad host=::ffff:192.168.0.3 port=36315
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): gdm_address_get_numeric_info() return host=127.0.0.1 port=0 res(getnameinfo)=0 return=1
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): gdm_address_debug() hostname=localhost host=127.0.0.1 port=0
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): Address family:2 (inet) hostname:(null) host:(null) port:(null) local:1 loopback:1
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): gdm_address_get_numeric_info() return host=192.168.0.3 port=0 res(getnameinfo)=0 return=1
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): gdm_address_debug() hostname=thinkpad host=192.168.0.3 port=0
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): Address family:2 (inet) hostname:(null) host:(null) port:(null) local:0 loopback:0
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): GdmAddress: looking up hostname: thinkpad
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): family=2 sock_type=1 protocol=6 flags=0x2 canonname=localhost#012
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): family=2 sock_type=2 protocol=17 flags=0x2 canonname=(null)#012
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): family=2 sock_type=3 protocol=0 flags=0x2 canonname=(null)#012
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): family=2 sock_type=1 protocol=6 flags=0x2 canonname=(null)#012
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): family=2 sock_type=2 protocol=17 flags=0x2 canonname=(null)#012
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): family=2 sock_type=3 protocol=0 flags=0x2 canonname=(null)#012
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): family=2 sock_type=1 protocol=6 flags=0x2 canonname=(null)#012
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): family=2 sock_type=2 protocol=17 flags=0x2 canonname=(null)#012
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): family=2 sock_type=3 protocol=0 flags=0x2 canonname=(null)#012
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): Address family:10 (inet6) hostname:(null) host:(null) port:(null) local:0 loopback:0
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): gdm_address_get_numeric_info() return host=::ffff:192.168.0.3 port=36315 res(getnameinfo)=0 return=1
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): decode_packet() gdm_address_get_numeric_info res=1 host=::ffff:192.168.0.3 port=36315
Jun 16 19:28:09 localhost gdm3[25814]: DEBUG(+): GdmXdmcpDisplayFactory: Received opcode QUERY from client ::ffff:192.168.0.3 : 36315
Jun 16 19:28:09 localhost gdm[25875]: ******************* START **********************************
Jun 16 19:28:09 localhost gdm[25875]: [Thread debugging using libthread_db enabled]
Jun 16 19:28:09 localhost gdm[25875]: [New Thread 0xb709ab70 (LWP 25819)]
Jun 16 19:28:09 localhost gdm[25875]: 0xb7825424 in __kernel_vsyscall ()
Jun 16 19:28:09 localhost gdm[25875]: #0 0xb7825424 in __kernel_vsyscall ()
Jun 16 19:28:09 localhost gdm[25875]: #1 0xb7659f4b in waitpid () at ../sysdeps/unix/syscall-template.S:82
Jun 16 19:28:09 localhost gdm[25875]: #2 0x08061ad1 in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: #3 0x08061bc1 in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: #4 <signal handler called>
Jun 16 19:28:09 localhost gdm[25875]: #5 0x0805e869 in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: #6 0x0805923d in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: #7 0x0805c7f3 in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: #8 0xb74f769b in ?? () from /lib/libglib-2.0.so.0
Jun 16 19:28:09 localhost gdm[25875]: #9 0xb74b32f5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
Jun 16 19:28:09 localhost gdm[25875]: #10 0xb74b6fd8 in ?? () from /lib/libglib-2.0.so.0
Jun 16 19:28:09 localhost gdm[25875]: #11 0xb74b7517 in g_main_loop_run () from /lib/libglib-2.0.so.0
Jun 16 19:28:09 localhost gdm[25875]: #12 0x0804dbce in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: #13 0xb733ac76 in __libc_start_main (main=0x804d4e0, argc=1,
Jun 16 19:28:09 localhost gdm[25875]: ubp_av=0xbfeab494, init=0x80635c0, fini=0x80635b0,
Jun 16 19:28:09 localhost gdm[25875]: rtld_fini=0xb78340d0 <_dl_fini>, stack_end=0xbfeab48c) at libc-start.c:228
Jun 16 19:28:09 localhost gdm[25875]: #14 0x0804ce21 in ?? ()
Jun 16 19:28:09 localhost gdm[25875]:
Jun 16 19:28:09 localhost gdm[25875]: Thread 2 (Thread 0xb709ab70 (LWP 25819)):
Jun 16 19:28:09 localhost gdm[25875]: #0 0xb7825424 in __kernel_vsyscall ()
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #1 0xb765909b in read () at ../sysdeps/unix/syscall-template.S:82
Jun 16 19:28:09 localhost gdm[25875]: No locals.
Jun 16 19:28:09 localhost gdm[25875]: #2 0xb74b442d in ?? () from /lib/libglib-2.0.so.0
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #3 0xb74dd69f in ?? () from /lib/libglib-2.0.so.0
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #4 0xb7651955 in start_thread (arg=0xb709ab70) at pthread_create.c:300
Jun 16 19:28:09 localhost gdm[25875]: __res = <value optimized out>
Jun 16 19:28:09 localhost gdm[25875]: __ignore1 = <value optimized out>
Jun 16 19:28:09 localhost gdm[25875]: __ignore2 = <value optimized out>
Jun 16 19:28:09 localhost gdm[25875]: pd = 0xb709ab70
Jun 16 19:28:09 localhost gdm[25875]: now = <value optimized out>
Jun 16 19:28:09 localhost gdm[25875]: 4001536,
Jun 16 19:28:09 localhost gdm[25875]: mask_was_saved = 0}},
Jun 16 19:28:09 localhost gdm[25875]: 0x0}, data = {prev = 0x0,
Jun 16 19:28:09 localhost gdm[25875]: canceltype = 0}}}
Jun 16 19:28:09 localhost gdm[25875]: not_first_call = <value optimized out>
Jun 16 19:28:09 localhost gdm[25875]: freesize = <value optimized out>
Jun 16 19:28:09 localhost gdm[25875]:
Jun 16 19:28:09 localhost gdm[25875]: #5 0xb73f010e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Jun 16 19:28:09 localhost gdm[25875]: No locals.
Jun 16 19:28:09 localhost gdm[25875]:
Jun 16 19:28:09 localhost gdm[25875]: Thread 1 (Thread 0xb7250720 (LWP 25814)):
Jun 16 19:28:09 localhost gdm[25875]: #0 0xb7825424 in __kernel_vsyscall ()
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #1 0xb7659f4b in waitpid () at ../sysdeps/unix/syscall-template.S:82
Jun 16 19:28:09 localhost gdm[25875]: No locals.
Jun 16 19:28:09 localhost gdm[25875]: #2 0x08061ad1 in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #3 0x08061bc1 in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #4 <signal handler called>
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #5 0x0805e869 in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #6 0x0805923d in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #7 0x0805c7f3 in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #8 0xb74f769b in ?? () from /lib/libglib-2.0.so.0
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #9 0xb74b32f5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #10 0xb74b6fd8 in ?? () from /lib/libglib-2.0.so.0
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #11 0xb74b7517 in g_main_loop_run () from /lib/libglib-2.0.so.0
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #12 0x0804dbce in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: #13 0xb733ac76 in __libc_start_main (main=0x804d4e0, argc=1,
Jun 16 19:28:09 localhost gdm[25875]: ubp_av=0xbfeab494, init=0x80635c0, fini=0x80635b0,
Jun 16 19:28:09 localhost gdm[25875]: rtld_fini=0xb78340d0 <_dl_fini>, stack_end=0xbfeab48c) at libc-start.c:228
Jun 16 19:28:09 localhost gdm[25875]: result = <value optimized out>
Jun 16 19:28:09 localhost gdm[25875]: 0,
Jun 16 19:28:09 localhost gdm[25875]: mask_was_saved = 0}},
Jun 16 19:28:09 localhost gdm[25875]: 0x804ce00}, data = {prev = 0x0,
Jun 16 19:28:09 localhost gdm[25875]: canceltype = 1}}}
Jun 16 19:28:09 localhost gdm[25875]: not_first_call = <value optimized out>
Jun 16 19:28:09 localhost gdm[25875]: #14 0x0804ce21 in ?? ()
Jun 16 19:28:09 localhost gdm[25875]: No symbol table info available.
Jun 16 19:28:09 localhost gdm[25875]: A debugging session is active.
Jun 16 19:28:09 localhost gdm[25875]:
Jun 16 19:28:09 localhost gdm[25875]: #011Inferior 1 [process 25814] will be detached.
Jun 16 19:28:09 localhost gdm[25875]:
Jun 16 19:28:09 localhost gdm[25875]: Quit anyway? (y or n) [answered Y; input not from terminal]
Jun 16 19:28:09 localhost gdm[25875]: ******************* END **********************************
Index: gdm3-2.30.2/daemon/gdm-xdmcp-display-factory.c
===================================================================
--- gdm3-2.30.2.orig/daemon/gdm-xdmcp-display-factory.c 2010-06-16 16:25:41.000000000 +0200
+++ gdm3-2.30.2/daemon/gdm-xdmcp-display-factory.c 2010-06-16 19:46:53.000000000 +0200
@@ -2887,12 +2887,15 @@
return TRUE;
}
+ ss_len = (int)gdm_sockaddr_len (&clnt_ss);
+
res = XdmcpFill (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)&clnt_ss, &ss_len);
if G_UNLIKELY (! res) {
g_debug ("GdmXdmcpDisplayFactory: Could not create XDMCP buffer!");
return TRUE;
}
- ss_len = (int)gdm_sockaddr_len (&clnt_ss);
+
+ g_debug("decode_packet() XdmcpFill done");
res = XdmcpReadHeader (&factory->priv->buf, &header);
if G_UNLIKELY (! res) {
@@ -2900,6 +2903,8 @@
return TRUE;
}
+ g_debug("decode_packet() XdmcpReadHeader done");
+
if G_UNLIKELY (header.version != XDM_PROTOCOL_VERSION &&
header.version != GDM_XDMCP_PROTOCOL_VERSION) {
g_warning (_("XMDCP: Incorrect XDMCP version!"));
@@ -2912,11 +2917,14 @@
return TRUE;
}
+ g_debug("decode_packet() gdm_address_new_from_sockaddr done");
+
gdm_address_debug (address);
host = NULL;
port = NULL;
gdm_address_get_numeric_info (address, &host, &port);
+ g_debug("decode_packet() gdm_address_get_numeric_info host=%s port=%s", host, port);
g_debug ("GdmXdmcpDisplayFactory: Received opcode %s from client %s : %s",
opcode_string (header.opcode),
Index: gdm3-2.30.2/common/gdm-address.c
===================================================================
--- gdm3-2.30.2.orig/common/gdm-address.c 2010-06-16 16:25:35.000000000 +0200
+++ gdm3-2.30.2/common/gdm-address.c 2010-06-16 19:47:24.000000000 +0200
@@ -252,6 +252,8 @@
gdm_address_get_hostname (address, &hostname);
gdm_address_get_numeric_info (address, &host, &port);
+ g_debug("gdm_address_debug() hostname=%s host=%s port=%s", hostname, host, port);
+
_gdm_address_debug (address, hostname, host, port);
}
@@ -336,6 +338,7 @@
*hostp = g_strdup (host);
}
+ g_debug("gdm_address_get_numeric_info() return host=%s port=%s res(getnameinfo)=%d return=%d", *hostp, *servp, res, ret);
return ret;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]