summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Cameron <brian.cameron@sun.com>2006-11-28 17:01:38 +0000
committerBrian Cameron <bcameron@src.gnome.org>2006-11-28 17:01:38 +0000
commit5623e8d613d31e870dec3c10587658c2642543c2 (patch)
tree6553a7a6867f9627422f2c0e35b87625c9456dbb
parent2743a700d8a1beb0719eeb9f2908d059c6a5cf77 (diff)
downloadgdm-5623e8d613d31e870dec3c10587658c2642543c2.tar.gz
Fix for TryExec check in gdmsession.c so that it does not pass arguments
2006-11-28 Brian Cameron <brian.cameron@sun.com> * gui/gdmsession.c: Fix for TryExec check in gdmsession.c so that it does not pass arguments into g_find_program_in_path since it causes it to say it is not executable if arguments are passed in.
-rw-r--r--ChangeLog7
-rw-r--r--gui/gdmsession.c9
2 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d78189ee..a051af5c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-11-28 Brian Cameron <brian.cameron@sun.com>
+
+ * gui/gdmsession.c: Fix for TryExec check in gdmsession.c so
+ that it does not pass arguments into g_find_program_in_path
+ since it causes it to say it is not executable if arguments
+ are passed in.
+
2006-11-27 Brian Cameron <brian.cameron@sun.com>
* gui/gdmlanguages.c, config/locale.alias: Rename Panjabi to
diff --git a/gui/gdmsession.c b/gui/gdmsession.c
index 62be6380..92a50d18 100644
--- a/gui/gdmsession.c
+++ b/gui/gdmsession.c
@@ -204,7 +204,13 @@ gdm_session_list_init ()
tryexec = ve_config_get_string (cfg, "Desktop Entry/TryExec");
if ( ! ve_string_empty (tryexec)) {
- char *full = g_find_program_in_path (tryexec);
+ char **tryexecvec = g_strsplit (tryexec, " ", -1);
+ char *full = NULL;
+
+ /* Do not pass any arguments to g_find_program_in_path */
+ if (tryexecvec != NULL)
+ full = g_find_program_in_path (tryexecvec[0]);
+
if (full == NULL) {
session = g_new0 (GdmSession, 1);
session->name = g_strdup (dent->d_name);
@@ -216,6 +222,7 @@ gdm_session_list_init ()
dent = readdir (sessdir);
continue;
}
+ g_strfreev (tryexecvec);
g_free (full);
}
g_free (tryexec);