[gdm] daemon: Don't run initial-setup if initial-setup is not installed
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm] daemon: Don't run initial-setup if initial-setup is not installed
- Date: Tue, 28 May 2013 20:10:02 +0000 (UTC)
commit 52b43e5ed80fb6f6d13d738d768b020c6276c298
Author: Ray Strode <rstrode redhat com>
Date: Tue May 28 13:01:31 2013 -0400
daemon: Don't run initial-setup if initial-setup is not installed
Right now, we always assume gnome-initial-setup is installed and
there to use to create the initial user if necessary.
This isn't always true, and our failure mode is to crash.
This commit makes us more resiliant to a missing gnome-initial-setup.
https://bugzilla.gnome.org/show_bug.cgi?id=695081
daemon/gdm-simple-slave.c | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
index c7e4468..74c4d51 100644
--- a/daemon/gdm-simple-slave.c
+++ b/daemon/gdm-simple-slave.c
@@ -65,6 +65,7 @@
#define DEFAULT_PING_INTERVAL 15
#define INITIAL_SETUP_USERNAME "gnome-initial-setup"
+#define GNOME_SESSION_SESSIONS_PATH DATADIR "/gnome-session/sessions"
struct GdmSimpleSlavePrivate
{
@@ -998,6 +999,20 @@ setup_server (GdmSimpleSlave *slave)
#endif
}
+static gboolean
+can_create_environment (const char *session_id)
+{
+ char *path;
+ gboolean session_exists;
+
+ path = g_strdup_printf (GNOME_SESSION_SESSIONS_PATH "/%s.desktop", session_id);
+ session_exists = g_file_test (path, G_FILE_TEST_EXISTS);
+
+ g_free (path);
+
+ return session_exists;
+}
+
static GdmLaunchEnvironment *
create_environment (const char *session_id,
const char *user_name,
@@ -1179,6 +1194,11 @@ wants_initial_setup (GdmSimpleSlave *slave)
return FALSE;
}
+ /* don't run if initial-setup is unavailable */
+ if (!can_create_environment ("gnome-initial-setup")) {
+ return FALSE;
+ }
+
if (!gdm_settings_direct_get_boolean (GDM_KEY_INITIAL_SETUP_ENABLE, &enabled)) {
return FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]