Dear sirs,
The attached patch (fixing the double free in gdm-xdmcp-manager.c) fixes
the crash for me.
Cheers, Chris.
--
Aptivate | http://www.aptivate.org | Phone: +44 1223 760887
The Humanitarian Centre, Fenner's, Gresham Road, Cambridge CB1 2ES
Aptivate is a not-for-profit company registered in England and Wales
with company number 04980791.
diff -ru gdm-2.20.7/daemon/gdm-xdmcp-manager.c gdm-2.20.7-chris/daemon/gdm-xdmcp-manager.c
--- gdm-2.20.7/daemon/gdm-xdmcp-manager.c 2008-06-30 18:53:13.000000000 +0100
+++ gdm-2.20.7-chris/daemon/gdm-xdmcp-manager.c 2009-02-05 12:55:04.000000000 +0000
@@ -401,12 +401,12 @@
sock = socket (ai->ai_family, ai->ai_socktype, ai->ai_protocol);
if (sock < 0) {
- gdm_debug ("socket: %s", g_strerror (errno));
+ gdm_error ("socket: %s", g_strerror (errno));
return sock;
}
if (bind (sock, ai->ai_addr, ai->ai_addrlen) < 0) {
- gdm_debug ("bind: %s", g_strerror (errno));
+ gdm_error ("bind: %s", g_strerror (errno));
close (sock);
return -1;
}
@@ -728,7 +728,6 @@
s = get_willing_output (manager);
if (s != NULL) {
- g_free (last_status);
last_status = s;
} else {
last_status = g_strdup (manager->priv->sysid);
--- gdm-2.20.7/daemon/server.c 2008-06-30 18:53:13.000000000 +0100
+++ gdm-2.20.7-chris/daemon/server.c 2009-02-05 11:55:05.000000000 +0000
@@ -1053,9 +1053,14 @@
str = ve_sure_string (svr->command);
svr_command = NULL;
- g_shell_parse_argv (str, &svr_argc, &svr_command, NULL);
- g_shell_parse_argv (disp->command, &argc, &argv, NULL);
+ GError* error_p;
+
+ g_assert(g_shell_parse_argv (str, &svr_argc,
+ &svr_command, &error_p));
+
+ g_assert(g_shell_parse_argv (disp->command, &argc,
+ &argv, &error_p));
if (argv[0] == NULL || argv[1] == NULL) {
g_strfreev (argv);