[network-manager-applet] menu: ensure active menu item is valid before trying to use it (rh #546901)



commit 4002dcbf601e84f62ebf5be115b3092ab1fe5b4f
Author: Dan Williams <dcbw redhat com>
Date:   Sat Dec 26 04:03:19 2009 -0600

    menu: ensure active menu item is valid before trying to use it (rh #546901)

 src/ap-menu-item.c       |   24 ++++++++++++++++++++++++
 src/applet-device-wifi.c |   10 ++++++----
 2 files changed, 30 insertions(+), 4 deletions(-)
---
diff --git a/src/ap-menu-item.c b/src/ap-menu-item.c
index 9b1f025..aee0e7e 100644
--- a/src/ap-menu-item.c
+++ b/src/ap-menu-item.c
@@ -110,6 +110,7 @@ void
 nm_network_menu_item_set_ssid (NMNetworkMenuItem *item, GByteArray *ssid)
 {
 	g_return_if_fail (item != NULL);
+	g_return_if_fail (NM_IS_NETWORK_MENU_ITEM (item));
 	g_return_if_fail (ssid != NULL);
 
 	g_free (item->ssid_string);
@@ -125,6 +126,9 @@ nm_network_menu_item_set_ssid (NMNetworkMenuItem *item, GByteArray *ssid)
 const char *
 nm_network_menu_item_get_ssid (NMNetworkMenuItem *item)
 {
+	g_return_val_if_fail (item != NULL, NULL);
+	g_return_val_if_fail (NM_IS_NETWORK_MENU_ITEM (item), NULL);
+
 	return item->ssid_string;
 }
 
@@ -132,6 +136,7 @@ guint32
 nm_network_menu_item_get_strength (NMNetworkMenuItem * item)
 {
 	g_return_val_if_fail (item != NULL, 0);
+	g_return_val_if_fail (NM_IS_NETWORK_MENU_ITEM (item), 0);
 
 	return item->int_strength;
 }
@@ -144,6 +149,7 @@ nm_network_menu_item_best_strength (NMNetworkMenuItem * item,
 	GdkPixbuf *pixbuf = NULL;
 
 	g_return_if_fail (item != NULL);
+	g_return_if_fail (NM_IS_NETWORK_MENU_ITEM (item));
 
 	strength = CLAMP (strength, 0, 100);
 
@@ -181,6 +187,7 @@ const const char *
 nm_network_menu_item_get_hash (NMNetworkMenuItem * item)
 {
 	g_return_val_if_fail (item != NULL, NULL);
+	g_return_val_if_fail (NM_IS_NETWORK_MENU_ITEM (item), NULL);
 
 	return item->hash;
 }
@@ -194,6 +201,9 @@ nm_network_menu_item_set_detail (NMNetworkMenuItem *item,
 	gboolean is_adhoc = FALSE;
 	guint32 ap_flags, ap_wpa, ap_rsn;
 
+	g_return_if_fail (item != NULL);
+	g_return_if_fail (NM_IS_NETWORK_MENU_ITEM (item));
+
 	ap_flags = nm_access_point_get_flags (ap);
 	ap_wpa = nm_access_point_get_wpa_flags (ap);
 	ap_rsn = nm_access_point_get_rsn_flags (ap);
@@ -226,6 +236,7 @@ nm_network_menu_item_find_dupe (NMNetworkMenuItem *item, NMAccessPoint *ap)
 	const char *path;
 	GSList *iter;
 
+	g_return_val_if_fail (item != NULL, FALSE);
 	g_return_val_if_fail (NM_IS_NETWORK_MENU_ITEM (item), FALSE);
 	g_return_val_if_fail (NM_IS_ACCESS_POINT (ap), FALSE);
 
@@ -242,6 +253,9 @@ nm_network_menu_item_set_active (NMNetworkMenuItem *item, gboolean active)
 {
 	char *markup;
 
+	g_return_if_fail (item != NULL);
+	g_return_if_fail (NM_IS_NETWORK_MENU_ITEM (item));
+
 	gtk_label_set_use_markup (GTK_LABEL (item->ssid), active);
 	if (active) {
 		markup = g_markup_printf_escaped ("<b>%s</b>", item->ssid_string);
@@ -256,6 +270,7 @@ nm_network_menu_item_add_dupe (NMNetworkMenuItem *item, NMAccessPoint *ap)
 {
 	const char *path;
 
+	g_return_if_fail (item != NULL);
 	g_return_if_fail (NM_IS_NETWORK_MENU_ITEM (item));
 	g_return_if_fail (NM_IS_ACCESS_POINT (ap));
 
@@ -266,18 +281,27 @@ nm_network_menu_item_add_dupe (NMNetworkMenuItem *item, NMAccessPoint *ap)
 gboolean
 nm_network_menu_item_get_has_connections (NMNetworkMenuItem *item)
 {
+	g_return_val_if_fail (item != NULL, FALSE);
+	g_return_val_if_fail (NM_IS_NETWORK_MENU_ITEM (item), FALSE);
+
 	return item->has_connections;
 }
 
 gboolean
 nm_network_menu_item_get_is_adhoc (NMNetworkMenuItem *item)
 {
+	g_return_val_if_fail (item != NULL, FALSE);
+	g_return_val_if_fail (NM_IS_NETWORK_MENU_ITEM (item), FALSE);
+
 	return item->is_adhoc;
 }
 
 gboolean
 nm_network_menu_item_get_is_encrypted (NMNetworkMenuItem *item)
 {
+	g_return_val_if_fail (item != NULL, FALSE);
+	g_return_val_if_fail (NM_IS_NETWORK_MENU_ITEM (item), FALSE);
+
 	return item->is_encrypted;
 }
 
diff --git a/src/applet-device-wifi.c b/src/applet-device-wifi.c
index 4105652..b24ff80 100644
--- a/src/applet-device-wifi.c
+++ b/src/applet-device-wifi.c
@@ -724,11 +724,13 @@ wireless_add_menu_item (NMDevice *device,
 		active_ap = nm_device_wifi_get_active_access_point (wdev);
 		if (active_ap) {
 			active_item = item = get_menu_item_for_ap (wdev, active_ap, connections, NULL, applet);
-			nm_network_menu_item_set_active (item, TRUE);
-			menu_items = g_slist_append (menu_items, item);
+			if (item) {
+				nm_network_menu_item_set_active (item, TRUE);
+				menu_items = g_slist_append (menu_items, item);
 
-			gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item));
-			gtk_widget_show_all (GTK_WIDGET (item));
+				gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item));
+				gtk_widget_show_all (GTK_WIDGET (item));
+			}
 		}
 	}
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]