vpn: Check whether we have already removed the provider
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Thu, 7 Mar 2013 16:13:44 +0000 (18:13 +0200)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Fri, 8 Mar 2013 11:50:15 +0000 (13:50 +0200)
The dbus messages from vpnd might come in different order so make
sure we are not trying to access already removed provider.

plugins/vpn.c

index f15796deb28aa8e0d3822350e40986fc925b6bec..04318a9628c556bf698efc5d36c5134f550a5e9a 100644 (file)
@@ -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.