From a1fbd8cb1199a9a918e2be212075b6d3d89c0914 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 24 Aug 2015 12:49:07 -0400 Subject: session: fix corruption of GDM_LANG environment variable commit cab736cfb32aa25677287ff261ae1cb11f036e89 introduced a bug that leads to GDM_LANG getting set to gibberish. This causes spew to the log and, in some cases, prevents successful login. This commit addresses the problem by duplicating a string that is, otherwise, freed before its second use. https://bugzilla.gnome.org/show_bug.cgi?id=754033 --- daemon/gdm-session.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c index 6faa7cd0..982b5eba 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c @@ -2451,7 +2451,7 @@ set_up_session_environment (GdmSession *self) { GdmSessionDisplayMode display_mode; gchar *desktop_names; - const char *locale; + char *locale; gdm_session_set_environment_variable (self, "GDMSESSION", @@ -2470,7 +2470,7 @@ set_up_session_environment (GdmSession *self) set_up_session_language (self); - locale = get_default_language_name (self); + locale = g_strdup (get_default_language_name (self)); if (locale != NULL && locale[0] != '\0') { gdm_session_set_environment_variable (self, @@ -2481,6 +2481,8 @@ set_up_session_environment (GdmSession *self) locale); } + g_free (locale); + display_mode = gdm_session_get_display_mode (self); if (display_mode == GDM_SESSION_DISPLAY_MODE_REUSE_VT) { gdm_session_set_environment_variable (self, -- cgit v1.2.1