diff options
author | Ray Strode <rstrode@redhat.com> | 2015-08-24 12:49:07 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2015-08-24 12:51:41 -0400 |
commit | a1fbd8cb1199a9a918e2be212075b6d3d89c0914 (patch) | |
tree | ff44628ed9d305c97ee65e389228cf5740a84432 | |
parent | 4fc1088f8bf87d90fd76d3ad470467ac3f3d0b59 (diff) | |
download | gdm-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.c | 6 |
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, |