diff options
author | Jukka Rissanen <jukka.rissanen@linux.intel.com> | 2013-03-07 18:13:44 +0200 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2013-03-08 13:50:15 +0200 |
commit | de460f095ede26b71270e7e122c4b88932860f2a (patch) | |
tree | b28093d99f61cfaad580ea71609ca5f48ac61db4 | |
parent | 079002da173d6675072bd31a65917392119ec9e3 (diff) | |
download | connman-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.c | 8 |
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. |