[dpdk-dev] l2fwd-crypto: fix supported key size check

Message ID B6059B2012717B4390714544B1F509E114F3091D@SHSMSX103.ccr.corp.intel.com (mailing list archive)
State Not Applicable, archived
Delegated to: Thomas Monjalon
Headers

Commit Message

Cao, Min April 19, 2016, 8:41 a.m. UTC
  Tested-by: Min Cao <min.cao@intel.com>

- Tested Commit: b3b9719f18ee83773c6ed7adda300c5ac63c37e9
- OS: Fedora20 3.11.10-301.fc20.x86_64
- GCC: gcc (GCC) 4.8.3
- CPU: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz
- NIC: Niantic
- Default x86_64-native-linuxapp-gcc configuration
- Prerequisites:
- Total 1 cases, 1 passed, 0 failed

- test case 1: l2fwd-crypto with 64 bytes auth_key
    Total 1 cases, 1 passed, 0 failed

-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Pablo de Lara
Sent: Tuesday, April 12, 2016 6:04 PM
To: dev@dpdk.org
Cc: Doherty, Declan; De Lara Guarch, Pablo
Subject: [dpdk-dev] [PATCH] l2fwd-crypto: fix supported key size check

When initializing crypto devices within the app, the provided key sizes are checked against the supported sizes from the crypto device capabilities.

When the supported sizes are not a range, but a single value, the check may become an infinite loop (when size is not supported).

Fixes: a061e50a0d97 ("examples/l2fwd-crypto: fix ambiguous input key size")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 examples/l2fwd-crypto/main.c | 9 +++++++++
 1 file changed, 9 insertions(+)
  

Patch

diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index d4e2d8d..e273f2f 100644
--- a/examples/l2fwd-crypto/main.c
+++ b/examples/l2fwd-crypto/main.c
@@ -1486,6 +1486,15 @@  check_supported_size(uint16_t length, uint16_t min, uint16_t max,  {
 	uint16_t supp_size;
 
+	/* Single value */
+	if (increment == 0) {
+		if (length == min)
+			return 0;
+		else
+			return -1;
+	}
+
+	/* Range of values */
 	for (supp_size = min; supp_size <= max; supp_size += increment) {
 		if (length == supp_size)
 			return 0;
--
2.5.5