diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2017-01-03 15:47:15 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-01-03 15:47:15 +0100 |
commit | 2ab0d34497cabe35a350ee72c46266c8046fffea (patch) | |
tree | b7fcc0311bc8c95e894f47627abd1f51addd525b | |
parent | ec1a47c29b137daa96beac4b87b9a80eeca776a7 (diff) | |
parent | a1c9135595881b53a8d417e97a845ced7f21f748 (diff) | |
download | network-manager-applet-2ab0d34497cabe35a350ee72c46266c8046fffea.tar.gz |
merge: branch 'bg/wireless-security-leaks-bgo750261'
https://bugzilla.gnome.org/show_bug.cgi?id=750261
-rw-r--r-- | src/libnma/nma-ui-utils.c | 7 | ||||
-rw-r--r-- | src/libnma/nma-wifi-dialog.c | 3 | ||||
-rw-r--r-- | src/wireless-security/eap-method-leap.c | 14 | ||||
-rw-r--r-- | src/wireless-security/eap-method-simple.c | 25 |
4 files changed, 19 insertions, 30 deletions
diff --git a/src/libnma/nma-ui-utils.c b/src/libnma/nma-ui-utils.c index 7649ee54..99e2e972 100644 --- a/src/libnma/nma-ui-utils.c +++ b/src/libnma/nma-ui-utils.c @@ -339,17 +339,18 @@ nma_utils_menu_to_secret_flags (GtkWidget *passwd_entry) /* Translate password popup menu to secret flags */ if (menu) { MenuItem idx = 0; - GList *list; + gs_free_list GList *list = NULL; int i, length; list = gtk_container_get_children (GTK_CONTAINER (menu)); + iter = list; length = g_list_length (list); for (i = 0; i < length; i++) { - if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (list->data))) { + if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (iter->data))) { idx = (MenuItem) i; break; } - list = g_list_next (list); + iter = g_list_next (iter); } flags = menu_item_to_secret_flags (idx); diff --git a/src/libnma/nma-wifi-dialog.c b/src/libnma/nma-wifi-dialog.c index ca989fc3..a7098ee2 100644 --- a/src/libnma/nma-wifi-dialog.c +++ b/src/libnma/nma-wifi-dialog.c @@ -269,6 +269,9 @@ stuff_changed_cb (WirelessSecurity *sec, gpointer user_data) if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->sec_combo), &iter)) gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sel_sec, -1); + if (sel_sec) + wireless_security_unref (sel_sec); + if (sel_sec != sec) return; diff --git a/src/wireless-security/eap-method-leap.c b/src/wireless-security/eap-method-leap.c index 2872084e..e4025a35 100644 --- a/src/wireless-security/eap-method-leap.c +++ b/src/wireless-security/eap-method-leap.c @@ -176,15 +176,11 @@ destroy (EAPMethod *parent) widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_leap_notebook")); g_assert (widget); + g_signal_handlers_disconnect_by_data (widget, method); - g_signal_handlers_disconnect_by_func (G_OBJECT (widget), - (GCallback) widgets_realized, - method); - g_signal_handlers_disconnect_by_func (G_OBJECT (widget), - (GCallback) widgets_unrealized, - method); - - wireless_security_unref (method->ws_parent); + g_signal_handlers_disconnect_by_data (method->username_entry, method->ws_parent); + g_signal_handlers_disconnect_by_data (method->password_entry, method->ws_parent); + g_signal_handlers_disconnect_by_data (method->show_password, method); } EAPMethodLEAP * @@ -213,7 +209,7 @@ eap_method_leap_new (WirelessSecurity *ws_parent, parent->password_flags_name = NM_SETTING_802_1X_PASSWORD; method = (EAPMethodLEAP *) parent; method->editing_connection = secrets_only ? FALSE : TRUE; - method->ws_parent = wireless_security_ref (ws_parent); + method->ws_parent = ws_parent; widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_leap_notebook")); g_assert (widget); diff --git a/src/wireless-security/eap-method-simple.c b/src/wireless-security/eap-method-simple.c index 05177274..b4ee7927 100644 --- a/src/wireless-security/eap-method-simple.c +++ b/src/wireless-security/eap-method-simple.c @@ -269,25 +269,14 @@ destroy (EAPMethod *parent) widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_simple_notebook")); g_assert (widget); + g_signal_handlers_disconnect_by_data (widget, method); - g_signal_handlers_disconnect_by_func (G_OBJECT (widget), - (GCallback) widgets_realized, - method); - g_signal_handlers_disconnect_by_func (G_OBJECT (widget), - (GCallback) widgets_unrealized, - method); + g_signal_handlers_disconnect_by_data (method->username_entry, method->ws_parent); + g_signal_handlers_disconnect_by_data (method->password_entry, method->ws_parent); + g_signal_handlers_disconnect_by_data (method->password_entry, method); + g_signal_handlers_disconnect_by_data (method->show_password, method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_simple_password_entry")); - g_assert (widget); - g_signal_handlers_disconnect_by_func (G_OBJECT (widget), - (GCallback) password_storage_changed, - method); - if (method->idle_func_id > 0) { - g_source_remove (method->idle_func_id); - method->idle_func_id = 0; - } - - wireless_security_unref (method->ws_parent); + nm_clear_g_source (&method->idle_func_id); } EAPMethodSimple * @@ -316,7 +305,7 @@ eap_method_simple_new (WirelessSecurity *ws_parent, parent->password_flags_name = NM_SETTING_802_1X_PASSWORD; method = (EAPMethodSimple *) parent; - method->ws_parent = wireless_security_ref (ws_parent); + method->ws_parent = ws_parent; method->flags = flags; method->type = type; g_assert (type < EAP_METHOD_SIMPLE_TYPE_LAST); |