vpn: Fix possible null pointer dereference
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Thu, 17 Mar 2011 13:25:37 +0000 (14:25 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 17 Mar 2011 16:48:15 +0000 (17:48 +0100)
Reported by: DJ Cozatt <ygdrasil@comcast.net>

plugins/vpn.c

index 4685b51..b75df05 100644 (file)
@@ -106,14 +106,16 @@ void vpn_died(struct connman_task *task, int exit_code, void *user_data)
 {
        struct connman_provider *provider = user_data;
        struct vpn_data *data = connman_provider_get_data(provider);
-       int state = data->state;
+       int state = VPN_STATE_FAILURE;
        enum connman_provider_error ret;
 
        DBG("provider %p data %p", provider, data);
 
-       if (!data)
+       if (data == NULL)
                goto vpn_exit;
 
+       state = data->state;
+
        kill_tun(data->if_name);
        connman_provider_set_data(provider, NULL);
        connman_rtnl_remove_watch(data->watch);