]> git.droids-corp.org - dpdk.git/commitdiff
drivers/crypto: check if name is null
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Tue, 18 Apr 2017 14:34:19 +0000 (15:34 +0100)
committerPablo de Lara <pablo.de.lara.guarch@intel.com>
Thu, 20 Apr 2017 09:32:45 +0000 (11:32 +0200)
Check if virtual device name is NULL,
to avoid possible segmentation faults.

Fixes: 5d2aa461cbca ("vdev: use generic vdev struct for probe and remove")
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
drivers/crypto/armv8/rte_armv8_pmd.c
drivers/crypto/kasumi/rte_kasumi_pmd.c
drivers/crypto/null/null_crypto_pmd.c
drivers/crypto/openssl/rte_openssl_pmd.c
drivers/crypto/scheduler/scheduler_pmd.c
drivers/crypto/snow3g/rte_snow3g_pmd.c
drivers/crypto/zuc/rte_zuc_pmd.c

index 1705896f0b9e773d370b1895b27491f1b243c279..f4dd1ae0b9275dfff77b82c8f7e8af9457bc6704 100644 (file)
@@ -501,6 +501,8 @@ aesni_gcm_probe(struct rte_vdev_device *vdev)
        const char *input_args;
 
        name = rte_vdev_device_name(vdev);
+       if (name == NULL)
+               return -EINVAL;
        input_args = rte_vdev_device_args(vdev);
        rte_cryptodev_parse_vdev_init_params(&init_params, input_args);
 
index 37b22ec69f249d97708ce5a6faa6c617fba34da0..88b691e8ff6e16c6d9a40977fd49b5f477e670ff 100644 (file)
@@ -768,6 +768,8 @@ cryptodev_aesni_mb_probe(struct rte_vdev_device *vdev)
        const char *input_args;
 
        name = rte_vdev_device_name(vdev);
+       if (name == NULL)
+               return -EINVAL;
        input_args = rte_vdev_device_args(vdev);
        rte_cryptodev_parse_vdev_init_params(&init_params, input_args);
 
index bf56bc62a41d8f69ec9fd22ce8424d3dcb09f1a4..a8af4a3dfbdef9b0d072ef9c6c57dcae45500404 100644 (file)
@@ -864,6 +864,8 @@ cryptodev_armv8_crypto_init(struct rte_vdev_device *vdev)
        const char *input_args;
 
        name = rte_vdev_device_name(vdev);
+       if (name == NULL)
+               return -EINVAL;
        input_args = rte_vdev_device_args(vdev);
        rte_cryptodev_parse_vdev_init_params(&init_params, input_args);
 
index 42fdd33a7cc05a8134f1bab9956ee64ba3fdc87d..b4476e88816c060235347c3f96a40c35dc2236b7 100644 (file)
@@ -624,6 +624,8 @@ cryptodev_kasumi_probe(struct rte_vdev_device *vdev)
        const char *input_args;
 
        name = rte_vdev_device_name(vdev);
+       if (name == NULL)
+               return -EINVAL;
        input_args = rte_vdev_device_args(vdev);
 
        rte_cryptodev_parse_vdev_init_params(&init_params, input_args);
index a44c61a4462e5450412dc4e4c5e371e84a52aa51..3d131cae17e796a10fc6ab96d274f3fce12480df 100644 (file)
@@ -226,12 +226,14 @@ cryptodev_null_probe(struct rte_vdev_device *dev)
                rte_socket_id(),
                {0}
        };
+       const char *name;
 
-       rte_cryptodev_parse_vdev_init_params(&init_params,
-               rte_vdev_device_args(dev));
+       name = rte_vdev_device_name(dev);
+       if (name == NULL)
+               return -EINVAL;
 
        RTE_LOG(INFO, PMD, "Initialising %s on NUMA node %d\n",
-               rte_vdev_device_name(dev), init_params.socket_id);
+               name, init_params.socket_id);
        if (init_params.name[0] != '\0')
                RTE_LOG(INFO, PMD, "  User defined name = %s\n",
                        init_params.name);
index f3c8f839d9003c804e9a8dd1c6fee519b40e5ef5..9deead8efd55f6a1f5fb7eb3f8de38e40d3b7e11 100644 (file)
@@ -1331,6 +1331,8 @@ cryptodev_openssl_probe(struct rte_vdev_device *vdev)
        const char *input_args;
 
        name = rte_vdev_device_name(vdev);
+       if (name == NULL)
+               return -EINVAL;
        input_args = rte_vdev_device_args(vdev);
 
        rte_cryptodev_parse_vdev_init_params(&init_params, input_args);
index 2a92d1e9a875a4236cec937a7edb8e1ce3df26cf..c03f1ca162df1364c4f31ae75d3e1496ebb76343 100644 (file)
@@ -414,12 +414,17 @@ cryptodev_scheduler_probe(struct rte_vdev_device *vdev)
                .enable_ordering = 0,
                .slave_names = { {0} }
        };
+       const char *name;
+
+       name = rte_vdev_device_name(vdev);
+       if (name == NULL)
+               return -EINVAL;
 
        scheduler_parse_init_params(&init_params,
                                    rte_vdev_device_args(vdev));
 
        RTE_LOG(INFO, PMD, "Initialising %s on NUMA node %d\n",
-                       rte_vdev_device_name(vdev),
+                       name,
                        init_params.def_p.socket_id);
        RTE_LOG(INFO, PMD, "  Max number of queue pairs = %d\n",
                        init_params.def_p.max_nb_queue_pairs);
index a31eaa81b05cecc41a4afe8e53a45c05ee7acbc6..42b802bcdec2e13c157b468a9c627f0bc02130ca 100644 (file)
@@ -613,6 +613,8 @@ cryptodev_snow3g_probe(struct rte_vdev_device *vdev)
        const char *input_args;
 
        name = rte_vdev_device_name(vdev);
+       if (name == NULL)
+               return -EINVAL;
        input_args = rte_vdev_device_args(vdev);
 
        rte_cryptodev_parse_vdev_init_params(&init_params, input_args);
index 5eec9334bd0b8217747faab8ee892e4e4a2264f7..22bf8bf583d7b9e01e3ef54a2ec26861675ccbc8 100644 (file)
@@ -513,6 +513,8 @@ cryptodev_zuc_probe(struct rte_vdev_device *vdev)
        const char *input_args;
 
        name = rte_vdev_device_name(vdev);
+       if (name == NULL)
+               return -EINVAL;
        input_args = rte_vdev_device_args(vdev);
 
        rte_cryptodev_parse_vdev_init_params(&init_params, input_args);