gdm r6734 - in branches/gnome-2-20: . daemon
- From: bcameron svn gnome org
- To: svn-commits-list gnome org
- Subject: gdm r6734 - in branches/gnome-2-20: . daemon
- Date: Thu, 26 Feb 2009 20:05:01 +0000 (UTC)
Author: bcameron
Date: Thu Feb 26 20:05:01 2009
New Revision: 6734
URL: http://svn.gnome.org/viewvc/gdm?rev=6734&view=rev
Log:
2009-02-26 Brian Cameron <brian cameron sun com>
* daemon/gdm.c, daemon/server.c: Provide better error reporting when
GDM is unable to parse the command. Another partial fix for bug
#530585.
Modified:
branches/gnome-2-20/ChangeLog
branches/gnome-2-20/daemon/gdm.c
branches/gnome-2-20/daemon/server.c
Modified: branches/gnome-2-20/daemon/gdm.c
==============================================================================
--- branches/gnome-2-20/daemon/gdm.c (original)
+++ branches/gnome-2-20/daemon/gdm.c Thu Feb 26 20:05:01 2009
@@ -1874,16 +1874,24 @@
}
if (SERVER_IS_LOCAL (d)) {
- char **argv;
- char *command;
- int argc;
+ char **argv;
+ char *command;
+ int argc;
+ gboolean rc;
+
argc = 0;
argv = NULL;
- gdm_server_resolve_command_line (d,
- FALSE, /* resolve_flags */
- NULL, /* vtarg */
- &argc,
- &argv);
+ rc = gdm_server_resolve_command_line (d,
+ FALSE, /* resolve_flags */
+ NULL, /* vtarg */
+ &argc,
+ &argv);
+
+ if (rc == FALSE) {
+ g_free (file);
+ return;
+ }
+
command = g_strjoinv (" ", argv);
g_strfreev (argv);
VE_IGNORE_EINTR (fprintf (fp, "%s local %s\n", d->name, command));
Modified: branches/gnome-2-20/daemon/server.c
==============================================================================
--- branches/gnome-2-20/daemon/server.c (original)
+++ branches/gnome-2-20/daemon/server.c Thu Feb 26 20:05:01 2009
@@ -988,6 +988,12 @@
g_shell_parse_argv (disp->command, &argc,
&argv, &error_p);
+ if (argv == NULL) {
+ gdm_debug ("Problem parsing server command <%s>",
+ disp->command ? disp->command : "(null)");
+ return FALSE;
+ }
+
if (argv[0] == NULL || argv[1] == NULL) {
g_strfreev (argv);
argv = svr_command;
@@ -1102,6 +1108,7 @@
int logfd;
char *command;
pid_t pid;
+ gboolean rc;
if (d == NULL ||
ve_string_empty (d->command)) {
@@ -1124,11 +1131,13 @@
/* Figure out the server command */
argv = NULL;
argc = 0;
- gdm_server_resolve_command_line (d,
- TRUE /* resolve flags */,
- vtarg,
- &argc,
- &argv);
+ rc = gdm_server_resolve_command_line (d,
+ TRUE /* resolve flags */,
+ vtarg,
+ &argc,
+ &argv);
+ if (rc == FALSE)
+ return;
/* Do not support additional session arguments with Xnest. */
if (d->type != TYPE_FLEXI_XNEST) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]