summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@linux.intel.com>2013-03-07 18:13:44 +0200
committerPatrik Flykt <patrik.flykt@linux.intel.com>2013-03-08 13:50:15 +0200
commitde460f095ede26b71270e7e122c4b88932860f2a (patch)
treeb28093d99f61cfaad580ea71609ca5f48ac61db4
parent079002da173d6675072bd31a65917392119ec9e3 (diff)
downloadconnman-de460f095ede26b71270e7e122c4b88932860f2a.tar.gz
connman-de460f095ede26b71270e7e122c4b88932860f2a.tar.bz2
connman-de460f095ede26b71270e7e122c4b88932860f2a.zip
vpn: Check whether we have already removed the provider
The dbus messages from vpnd might come in different order so make sure we are not trying to access already removed provider.
-rw-r--r--plugins/vpn.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/plugins/vpn.c b/plugins/vpn.c
index f15796de..04318a96 100644
--- a/plugins/vpn.c
+++ b/plugins/vpn.c
@@ -796,6 +796,14 @@ static int provider_remove(struct connman_provider *provider)
DBG("provider %p data %p", provider, data);
+ if (data == NULL) {
+ /*
+ * This means the provider is already removed,
+ * just ignore the dbus in this case.
+ */
+ return -EALREADY;
+ }
+
/*
* When provider.c:provider_remove() calls this function,
* it will remove the provider itself after the call.