summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2015-08-24 12:49:07 -0400
committerRay Strode <rstrode@redhat.com>2015-08-24 12:51:41 -0400
commita1fbd8cb1199a9a918e2be212075b6d3d89c0914 (patch)
treeff44628ed9d305c97ee65e389228cf5740a84432
parent4fc1088f8bf87d90fd76d3ad470467ac3f3d0b59 (diff)
downloadgdm-a1fbd8cb1199a9a918e2be212075b6d3d89c0914.tar.gz
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
-rw-r--r--daemon/gdm-session.c6
1 files 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,