summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2017-01-03 15:47:15 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2017-01-03 15:47:15 +0100
commit2ab0d34497cabe35a350ee72c46266c8046fffea (patch)
treeb7fcc0311bc8c95e894f47627abd1f51addd525b
parentec1a47c29b137daa96beac4b87b9a80eeca776a7 (diff)
parenta1c9135595881b53a8d417e97a845ced7f21f748 (diff)
downloadnetwork-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.c7
-rw-r--r--src/libnma/nma-wifi-dialog.c3
-rw-r--r--src/wireless-security/eap-method-leap.c14
-rw-r--r--src/wireless-security/eap-method-simple.c25
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);