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



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3469 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Dan Williams 2008-03-17 13:28:36 +00:00
parent 2ef87b105b
commit 50fb976d6a
2 changed files with 11 additions and 5 deletions

View file

@ -1,3 +1,11 @@
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
2008-03-14 Tambet Ingo <tambet@gmail.com>
* src/backends/NetworkManagerSlackware.c

View file

@ -184,6 +184,7 @@ auto_activate_device (gpointer user_data)
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 @@ auto_activate_device (gpointer user_data)
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 @@ auto_activate_device (gpointer user_data)
}
}
/* 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);