From 18f421f65bb8dcfa77919c48edeb54c867ce89c8 Mon Sep 17 00:00:00 2001 From: Pablo de Lara Date: Mon, 17 Apr 2017 13:23:37 +0100 Subject: [PATCH] examples/l2fwd-crypto: fix AEAD tests when AAD is zero For AEAD algorithms, additional authenticated data (AAD) can be passed, but it is optional, so its size can be zero. However, it is required to set this length to zero in the crypto operation to avoid undefined behaviour. Fixes: 617a7949c98a ("examples/l2fwd-crypto: parse AAD parameter") Cc: stable@dpdk.org Signed-off-by: Pablo de Lara --- examples/l2fwd-crypto/main.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index 15fab102bf..2eb14c14c6 100644 --- a/examples/l2fwd-crypto/main.c +++ b/examples/l2fwd-crypto/main.c @@ -470,6 +470,10 @@ l2fwd_simple_crypto_enqueue(struct rte_mbuf *m, op->sym->auth.aad.data = cparams->aad.data; op->sym->auth.aad.phys_addr = cparams->aad.phys_addr; op->sym->auth.aad.length = cparams->aad.length; + } else { + op->sym->auth.aad.data = NULL; + op->sym->auth.aad.phys_addr = 0; + op->sym->auth.aad.length = 0; } } @@ -670,7 +674,8 @@ l2fwd_main_loop(struct l2fwd_crypto_options *options) generate_random_key(port_cparams[i].aad.data, port_cparams[i].aad.length); - } + } else + port_cparams[i].aad.length = 0; if (options->auth_xform.auth.op == RTE_CRYPTO_AUTH_OP_VERIFY) port_cparams[i].hash_verify = 1;