vpn: Fix null pointer dereference
authorHenrique Dante de Almeida <hdante@profusion.mobi>
Tue, 8 May 2012 19:20:53 +0000 (16:20 -0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Wed, 9 May 2012 14:15:14 +0000 (17:15 +0300)
plugins/vpn.c

index ada15aa..e442306 100644 (file)
@@ -351,9 +351,12 @@ static int vpn_connect(struct connman_provider *provider)
 
        vpn_driver_data = g_hash_table_lookup(driver_hash, name);
 
-       if (vpn_driver_data != NULL && vpn_driver_data->vpn_driver != NULL &&
-               vpn_driver_data->vpn_driver->flags != VPN_FLAG_NO_TUN) {
+       if (vpn_driver_data == NULL || vpn_driver_data->vpn_driver == NULL) {
+               ret = -EINVAL;
+               goto exist_err;
+       }
 
+       if (vpn_driver_data->vpn_driver->flags != VPN_FLAG_NO_TUN) {
                ret = vpn_create_tun(provider);
                if (ret < 0)
                        goto exist_err;