Andrew P. has proposed merging
lp:~lightdm-gtk-greeter-team/lightdm-gtk-greeter/get_session_fix into
lp:lightdm-gtk-greeter.
Requested reviews:
LightDM Gtk+ Greeter Development Team (lightdm-gtk-greeter-team)
Related bugs:
Bug #1311933 in LightDM GTK+ Greeter: "New users fail when ~session is not
part of show-indicators= in the config."
https://bugs.launchpad.net/lightdm-gtk-greeter/+bug/1311933
For more details, see:
https://code.launchpad.net/~lightdm-gtk-greeter-team/lightdm-gtk-greeter/get_session_fix/+merge/217356
get_session() returns current_session instead of its copy. Returned value will
be freed in start_session() -> current_session becomes corrupted. The same is
true for get_language() and current_language.
This patch fix it.
--
https://code.launchpad.net/~lightdm-gtk-greeter-team/lightdm-gtk-greeter/get_session_fix/+merge/217356
Your team LightDM Gtk+ Greeter Development Team is requested to review the
proposed merge of
lp:~lightdm-gtk-greeter-team/lightdm-gtk-greeter/get_session_fix into
lp:lightdm-gtk-greeter.
=== modified file 'src/lightdm-gtk-greeter.c'
--- src/lightdm-gtk-greeter.c 2014-04-23 10:35:11 +0000
+++ src/lightdm-gtk-greeter.c 2014-04-27 14:25:03 +0000
@@ -521,7 +521,7 @@
/* if the user manually selected a session, use it */
if (current_session)
- return current_session;
+ return g_strdup (current_session);
menu_items = gtk_container_get_children(GTK_CONTAINER(session_menu));
@@ -549,6 +549,7 @@
if (!gtk_widget_get_visible (session_menuitem))
{
+ g_free (current_session);
current_session = g_strdup (session);
return;
}
@@ -567,6 +568,7 @@
if (matched)
{
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_iter->data), TRUE);
+ g_free (current_session);
current_session = g_strdup(session);
/* Set menuitem-image to session-badge */
#if GTK_CHECK_VERSION (3, 0, 0)
@@ -626,7 +628,7 @@
/* if the user manually selected a language, use it */
if (current_language)
- return current_language;
+ return g_strdup (current_language);
menu_items = gtk_container_get_children(GTK_CONTAINER(language_menu));
for (menu_iter = menu_items; menu_iter != NULL; menu_iter = g_list_next(menu_iter))
@@ -648,6 +650,7 @@
if (!gtk_widget_get_visible (language_menuitem))
{
+ g_free (current_language);
current_language = g_strdup (language);
return;
}
@@ -666,6 +669,7 @@
if (matched)
{
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_iter->data), TRUE);
+ g_free (current_language);
current_language = g_strdup(language);
gtk_menu_item_set_label(GTK_MENU_ITEM(language_menuitem),language);
return;
--
Mailing list: https://launchpad.net/~lightdm-gtk-greeter-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~lightdm-gtk-greeter-team
More help : https://help.launchpad.net/ListHelp