[dpdk-dev] app/crypto-perf: fix possible overflow

Message ID 1491921779-33239-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 11, 2017, 2:42 p.m. UTC
  In the latency test, when number of enqueued operations
is less than the burst size, the timestamp value of the
non-enqueued operations was being stored, even though
those operations were being freed.

This could cause an array overflow, since it could store
more values than the total number of operations.

Fixes: 5d75fb09d3be ("app/crypto-perf: fix invalid latency for QAT")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 app/test-crypto-perf/cperf_test_latency.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

De Lara Guarch, Pablo April 17, 2017, 9:44 p.m. UTC | #1
> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Tuesday, April 11, 2017 3:43 PM
> To: dev@dpdk.org
> Cc: Doherty, Declan; stable@dpdk.org; De Lara Guarch, Pablo
> Subject: [PATCH] app/crypto-perf: fix possible overflow
> 
> In the latency test, when number of enqueued operations
> is less than the burst size, the timestamp value of the
> non-enqueued operations was being stored, even though
> those operations were being freed.
> 
> This could cause an array overflow, since it could store
> more values than the total number of operations.
> 
> Fixes: 5d75fb09d3be ("app/crypto-perf: fix invalid latency for QAT")
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

Applied to dpdk-next-crypto.

Pablo
  

Patch

diff --git a/app/test-crypto-perf/cperf_test_latency.c b/app/test-crypto-perf/cperf_test_latency.c
index 3275b4b..e61ac97 100644
--- a/app/test-crypto-perf/cperf_test_latency.c
+++ b/app/test-crypto-perf/cperf_test_latency.c
@@ -396,7 +396,7 @@  cperf_latency_test_runner(void *arg)
 			for (i = ops_enqd; i < burst_size; i++)
 				rte_crypto_op_free(ops[i]);
 
-			for (i = 0; i < burst_size; i++) {
+			for (i = 0; i < ops_enqd; i++) {
 				ctx->res[tsc_idx].tsc_start = tsc_start;
 				ops[i]->opaque_data = (void *)&ctx->res[tsc_idx];
 				tsc_idx++;