From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 26EB82904 for ; Tue, 18 Apr 2017 16:34:49 +0200 (CEST) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Apr 2017 07:34:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,219,1488873600"; d="scan'208";a="90869251" Received: from silpixa00381631.ir.intel.com (HELO silpixa00381631.ger.corp.intel.com) ([10.237.222.122]) by fmsmga005.fm.intel.com with ESMTP; 18 Apr 2017 07:34:41 -0700 From: Pablo de Lara To: dev@dpdk.org Cc: zbigniew.bodek@caviumnetworks.com, jerin.jacob@caviumnetworks.com, declan.doherty@intel.com, roy.fan.zhang@intel.com, Pablo de Lara Date: Tue, 18 Apr 2017 15:34:19 +0100 Message-Id: <1492526060-96427-1-git-send-email-pablo.de.lara.guarch@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-dev] [PATCH 1/2] drivers/crypto: check if name is NULL X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 14:34:50 -0000 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 --- 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(-) 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); -- 2.7.4