NetworkManager r3469 - in trunk: . src



Author: dcbw
Date: Mon Mar 17 13:28:36 2008
New Revision: 3469
URL: http://svn.gnome.org/viewvc/NetworkManager?rev=3469&view=rev

Log:
2008-03-17  Dan Williams  <dcbw redhat com>

	* src/NetworkManagerPolicy.c
		- (auto_activate_device): always remove the current activation check
			from the pending activation list, otherwise when the policy gets
			destroyed on NM exit it will attempt to free the already freed
			activation check



Modified:
   trunk/ChangeLog
   trunk/src/NetworkManagerPolicy.c

Modified: trunk/src/NetworkManagerPolicy.c
==============================================================================
--- trunk/src/NetworkManagerPolicy.c	(original)
+++ trunk/src/NetworkManagerPolicy.c	Mon Mar 17 13:28:36 2008
@@ -184,6 +184,7 @@
 	GSList *connections, *iter;
 
 	g_assert (data);
+	policy = data->policy;
 
 	// FIXME: if a device is already activating (or activated) with a connection
 	// but another connection now overrides the current one for that device,
@@ -192,8 +193,6 @@
 	if (nm_device_get_act_request (data->device))
 		goto out;
 
-	policy = data->policy;
-
 	/* System connections first, then user connections */
 	connections = nm_manager_get_connections (policy->manager, NM_CONNECTION_SCOPE_SYSTEM);
 	connections = g_slist_concat (connections, nm_manager_get_connections (policy->manager, NM_CONNECTION_SCOPE_USER));
@@ -230,13 +229,12 @@
 		}
 	}
 
-	/* Remove this call's handler ID */
-	policy->pending_activation_checks = g_slist_remove (policy->pending_activation_checks, data);
-
 	g_slist_foreach (connections, (GFunc) g_object_unref, NULL);
 	g_slist_free (connections);
 
  out:
+	/* Remove this call's handler ID */
+	policy->pending_activation_checks = g_slist_remove (policy->pending_activation_checks, data);
 	g_object_unref (data->device);
 	g_free (data);
 



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