[dpdk-dev,1/2] drivers/crypto: check if name is NULL

Message ID 1492526060-96427-1-git-send-email-pablo.de.lara.guarch@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Pablo de Lara Guarch
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

De Lara Guarch, Pablo April 18, 2017, 2:34 p.m. UTC
  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>
---
 drivers/crypto/aesni_gcm/aesni_gcm_pmd.c   | 2 ++
 drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 2 ++
 drivers/crypto/armv8/rte_armv8_pmd.c       | 2 ++
 drivers/crypto/kasumi/rte_kasumi_pmd.c     | 2 ++
 drivers/crypto/null/null_crypto_pmd.c      | 8 +++++---
 drivers/crypto/openssl/rte_openssl_pmd.c   | 2 ++
 drivers/crypto/scheduler/scheduler_pmd.c   | 7 ++++++-
 drivers/crypto/snow3g/rte_snow3g_pmd.c     | 2 ++
 drivers/crypto/zuc/rte_zuc_pmd.c           | 2 ++
 9 files changed, 25 insertions(+), 4 deletions(-)
  

Comments

Fan Zhang April 19, 2017, 9:48 a.m. UTC | #1
> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Tuesday, April 18, 2017 3:34 PM
> To: dev@dpdk.org
> Cc: zbigniew.bodek@caviumnetworks.com;
> jerin.jacob@caviumnetworks.com; Doherty, Declan
> <declan.doherty@intel.com>; Zhang, Roy Fan <roy.fan.zhang@intel.com>;
> De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH 1/2] drivers/crypto: check if name is NULL
> 
> 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>
  
De Lara Guarch, Pablo April 19, 2017, 3:55 p.m. UTC | #2
> -----Original Message-----
> From: Zhang, Roy Fan
> Sent: Wednesday, April 19, 2017 10:48 AM
> To: De Lara Guarch, Pablo; dev@dpdk.org
> Cc: zbigniew.bodek@caviumnetworks.com;
> jerin.jacob@caviumnetworks.com; Doherty, Declan
> Subject: RE: [PATCH 1/2] drivers/crypto: check if name is NULL
> 
> 
> 
> > -----Original Message-----
> > From: De Lara Guarch, Pablo
> > Sent: Tuesday, April 18, 2017 3:34 PM
> > To: dev@dpdk.org
> > Cc: zbigniew.bodek@caviumnetworks.com;
> > jerin.jacob@caviumnetworks.com; Doherty, Declan
> > <declan.doherty@intel.com>; Zhang, Roy Fan
> <roy.fan.zhang@intel.com>;
> > De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> > Subject: [PATCH 1/2] drivers/crypto: check if name is NULL
> >
> > 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>

Applied to dpdk-next-crypto.

Pablo
  

Patch

diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
index 1705896..f4dd1ae 100644
--- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
+++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
@@ -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);
 
diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
index 37b22ec..88b691e 100644
--- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
+++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
@@ -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);
 
diff --git a/drivers/crypto/armv8/rte_armv8_pmd.c b/drivers/crypto/armv8/rte_armv8_pmd.c
index bf56bc6..a8af4a3 100644
--- a/drivers/crypto/armv8/rte_armv8_pmd.c
+++ b/drivers/crypto/armv8/rte_armv8_pmd.c
@@ -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);
 
diff --git a/drivers/crypto/kasumi/rte_kasumi_pmd.c b/drivers/crypto/kasumi/rte_kasumi_pmd.c
index 42fdd33..b4476e8 100644
--- a/drivers/crypto/kasumi/rte_kasumi_pmd.c
+++ b/drivers/crypto/kasumi/rte_kasumi_pmd.c
@@ -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);
diff --git a/drivers/crypto/null/null_crypto_pmd.c b/drivers/crypto/null/null_crypto_pmd.c
index a44c61a..3d131ca 100644
--- a/drivers/crypto/null/null_crypto_pmd.c
+++ b/drivers/crypto/null/null_crypto_pmd.c
@@ -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);
diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
index f3c8f83..9deead8 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -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);
diff --git a/drivers/crypto/scheduler/scheduler_pmd.c b/drivers/crypto/scheduler/scheduler_pmd.c
index 7d9e376..74e1f26 100644
--- a/drivers/crypto/scheduler/scheduler_pmd.c
+++ b/drivers/crypto/scheduler/scheduler_pmd.c
@@ -429,12 +429,17 @@  cryptodev_scheduler_probe(struct rte_vdev_device *vdev)
 		.mode = CDEV_SCHED_MODE_NOT_SET,
 		.enable_ordering = 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);
diff --git a/drivers/crypto/snow3g/rte_snow3g_pmd.c b/drivers/crypto/snow3g/rte_snow3g_pmd.c
index a31eaa8..42b802b 100644
--- a/drivers/crypto/snow3g/rte_snow3g_pmd.c
+++ b/drivers/crypto/snow3g/rte_snow3g_pmd.c
@@ -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);
diff --git a/drivers/crypto/zuc/rte_zuc_pmd.c b/drivers/crypto/zuc/rte_zuc_pmd.c
index 5eec933..22bf8bf 100644
--- a/drivers/crypto/zuc/rte_zuc_pmd.c
+++ b/drivers/crypto/zuc/rte_zuc_pmd.c
@@ -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);