[dpdk-dev] crypto: use snprintf return value correctly

Message ID 1507713940-12268-1-git-send-email-tdu@semihalf.com (mailing list archive)
State Superseded, archived
Delegated to: Pablo de Lara Guarch
Headers

Checks

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

Commit Message

Tomasz Duszynski Oct. 11, 2017, 9:25 a.m. UTC
  snprintf return value is the length of was encoded into destination
array excluding '\0'. Thus return value equal to the length of the
destination array or more means truncation.

This commit fixes improper use of the return value.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
---
 drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c   | 2 +-
 drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 4 ++--
 drivers/crypto/armv8/rte_armv8_pmd_ops.c       | 2 +-
 drivers/crypto/kasumi/rte_kasumi_pmd_ops.c     | 2 +-
 drivers/crypto/null/null_crypto_pmd_ops.c      | 2 +-
 drivers/crypto/openssl/rte_openssl_pmd_ops.c   | 2 +-
 drivers/crypto/snow3g/rte_snow3g_pmd_ops.c     | 2 +-
 drivers/crypto/zuc/rte_zuc_pmd_ops.c           | 2 +-
 8 files changed, 9 insertions(+), 9 deletions(-)
  

Comments

Bruce Richardson Oct. 11, 2017, 9:58 a.m. UTC | #1
On Wed, Oct 11, 2017 at 11:25:40AM +0200, Tomasz Duszynski wrote:
> snprintf return value is the length of was encoded into destination
> array excluding '\0'. Thus return value equal to the length of the
> destination array or more means truncation.
> 
> This commit fixes improper use of the return value.
> 
> Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
> ---
Good catch.

Acked-by: Bruce Richardson <bruce.richardson@intel.com>
  
De Lara Guarch, Pablo Oct. 11, 2017, 10:09 a.m. UTC | #2
Hi,

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> Sent: Wednesday, October 11, 2017 10:58 AM
> To: Tomasz Duszynski <tdu@semihalf.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] crypto: use snprintf return value correctly
> 
> On Wed, Oct 11, 2017 at 11:25:40AM +0200, Tomasz Duszynski wrote:
> > snprintf return value is the length of was encoded into destination
> > array excluding '\0'. Thus return value equal to the length of the
> > destination array or more means truncation.
> >
> > This commit fixes improper use of the return value.
> >
> > Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
> > ---
> Good catch.
> 
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Since this is a fix, you should add Fixes lines (one per PMD), and CC stable.

Thanks!
Pablo
  
Tomasz Duszynski Oct. 11, 2017, 10:42 a.m. UTC | #3
On Wed, Oct 11, 2017 at 10:09:02AM +0000, De Lara Guarch, Pablo wrote:
> Hi,
>
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> > Sent: Wednesday, October 11, 2017 10:58 AM
> > To: Tomasz Duszynski <tdu@semihalf.com>
> > Cc: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] crypto: use snprintf return value correctly
> >
> > On Wed, Oct 11, 2017 at 11:25:40AM +0200, Tomasz Duszynski wrote:
> > > snprintf return value is the length of was encoded into destination
> > > array excluding '\0'. Thus return value equal to the length of the
> > > destination array or more means truncation.
> > >
> > > This commit fixes improper use of the return value.
> > >
> > > Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
> > > ---
> > Good catch.
> >
> > Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>
> Since this is a fix, you should add Fixes lines (one per PMD), and CC stable.
>
> Thanks!
> Pablo
>

ACK

--
- Tomasz Duszyński
  

Patch

diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c
index 48400ac..0f315f0 100644
--- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c
+++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c
@@ -195,7 +195,7 @@  aesni_gcm_pmd_qp_set_unique_name(struct rte_cryptodev *dev,
 			"aesni_gcm_pmd_%u_qp_%u",
 			dev->data->dev_id, qp->id);
 
-	if (n > sizeof(qp->name))
+	if (n >= sizeof(qp->name))
 		return -1;
 
 	return 0;
diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c
index 2e52ac2..3b3ef0c 100644
--- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c
+++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c
@@ -397,7 +397,7 @@  aesni_mb_pmd_qp_set_unique_name(struct rte_cryptodev *dev,
 			"aesni_mb_pmd_%u_qp_%u",
 			dev->data->dev_id, qp->id);
 
-	if (n > sizeof(qp->name))
+	if (n >= sizeof(qp->name))
 		return -1;
 
 	return 0;
@@ -415,7 +415,7 @@  aesni_mb_pmd_qp_create_processed_ops_ring(struct aesni_mb_qp *qp,
 				"%s_%s",
 				qp->name, str);
 
-	if (n > sizeof(ring_name))
+	if (n >= sizeof(ring_name))
 		return NULL;
 
 	r = rte_ring_lookup(ring_name);
diff --git a/drivers/crypto/armv8/rte_armv8_pmd_ops.c b/drivers/crypto/armv8/rte_armv8_pmd_ops.c
index 00297be..63776b2 100644
--- a/drivers/crypto/armv8/rte_armv8_pmd_ops.c
+++ b/drivers/crypto/armv8/rte_armv8_pmd_ops.c
@@ -209,7 +209,7 @@  armv8_crypto_pmd_qp_set_unique_name(struct rte_cryptodev *dev,
 	n = snprintf(qp->name, sizeof(qp->name), "armv8_crypto_pmd_%u_qp_%u",
 			dev->data->dev_id, qp->id);
 
-	if (n > sizeof(qp->name))
+	if (n >= sizeof(qp->name))
 		return -1;
 
 	return 0;
diff --git a/drivers/crypto/kasumi/rte_kasumi_pmd_ops.c b/drivers/crypto/kasumi/rte_kasumi_pmd_ops.c
index 8033114..4da12f3 100644
--- a/drivers/crypto/kasumi/rte_kasumi_pmd_ops.c
+++ b/drivers/crypto/kasumi/rte_kasumi_pmd_ops.c
@@ -183,7 +183,7 @@  kasumi_pmd_qp_set_unique_name(struct rte_cryptodev *dev,
 			"kasumi_pmd_%u_qp_%u",
 			dev->data->dev_id, qp->id);
 
-	if (n > sizeof(qp->name))
+	if (n >= sizeof(qp->name))
 		return -1;
 
 	return 0;
diff --git a/drivers/crypto/null/null_crypto_pmd_ops.c b/drivers/crypto/null/null_crypto_pmd_ops.c
index 7615320..c427050 100644
--- a/drivers/crypto/null/null_crypto_pmd_ops.c
+++ b/drivers/crypto/null/null_crypto_pmd_ops.c
@@ -175,7 +175,7 @@  null_crypto_pmd_qp_set_unique_name(struct rte_cryptodev *dev,
 			"null_crypto_pmd_%u_qp_%u",
 			dev->data->dev_id, qp->id);
 
-	if (n > sizeof(qp->name))
+	if (n >= sizeof(qp->name))
 		return -1;
 
 	return 0;
diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c b/drivers/crypto/openssl/rte_openssl_pmd_ops.c
index e1c225d..c572239 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c
@@ -599,7 +599,7 @@  openssl_pmd_qp_set_unique_name(struct rte_cryptodev *dev,
 			"openssl_pmd_%u_qp_%u",
 			dev->data->dev_id, qp->id);
 
-	if (n > sizeof(qp->name))
+	if (n >= sizeof(qp->name))
 		return -1;
 
 	return 0;
diff --git a/drivers/crypto/snow3g/rte_snow3g_pmd_ops.c b/drivers/crypto/snow3g/rte_snow3g_pmd_ops.c
index ae9569c..157a2de 100644
--- a/drivers/crypto/snow3g/rte_snow3g_pmd_ops.c
+++ b/drivers/crypto/snow3g/rte_snow3g_pmd_ops.c
@@ -184,7 +184,7 @@  snow3g_pmd_qp_set_unique_name(struct rte_cryptodev *dev,
 			"snow3g_pmd_%u_qp_%u",
 			dev->data->dev_id, qp->id);
 
-	if (n > sizeof(qp->name))
+	if (n >= sizeof(qp->name))
 		return -1;
 
 	return 0;
diff --git a/drivers/crypto/zuc/rte_zuc_pmd_ops.c b/drivers/crypto/zuc/rte_zuc_pmd_ops.c
index 52c6aed..243c099 100644
--- a/drivers/crypto/zuc/rte_zuc_pmd_ops.c
+++ b/drivers/crypto/zuc/rte_zuc_pmd_ops.c
@@ -184,7 +184,7 @@  zuc_pmd_qp_set_unique_name(struct rte_cryptodev *dev,
 			"zuc_pmd_%u_qp_%u",
 			dev->data->dev_id, qp->id);
 
-	if (n > sizeof(qp->name))
+	if (n >= sizeof(qp->name))
 		return -1;
 
 	return 0;