From: Olivier Matz Date: Mon, 11 Sep 2017 15:13:33 +0000 (+0200) Subject: app/test-crypto-perf: fix compilation with -Og X-Git-Tag: spdx-start~1775 X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=addaac42a0c3904ac6adde7d211e6ad8d43515d0 app/test-crypto-perf: fix compilation with -Og The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following error: CC cperf_test_verify.o cperf_test_verify.c: In function ‘cperf_verify_op’: cperf_test_verify.c:382:5: error: ‘auth’ may be used uninitialized in this function [-Werror=maybe-uninitialized] if (auth == 1) { ^ cperf_test_verify.c:371:5: error: ‘cipher’ may be used uninitialized in this function [-Werror=maybe-uninitialized] if (cipher == 1) { ^ cperf_test_verify.c:384:11: error: ‘auth_offset’ may be used uninitialized in this function [-Werror=maybe-uninitialized] res += memcmp(data + auth_offset, ^~~~~~~~~~~~~~~~~~~~~~~~~~ vector->digest.data, ~~~~~~~~~~~~~~~~~~~~ options->digest_sz); ~~~~~~~~~~~~~~~~~~~ cperf_test_verify.c:377:11: error: ‘cipher_offset’ may be used uninitialized in this function [-Werror=maybe-uninitialized] res += memcmp(data + cipher_offset, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ vector->plaintext.data, ~~~~~~~~~~~~~~~~~~~~~~~ options->test_buffer_size); ~~~~~~~~~~~~~~~~~~~~~~~~~~ There is no default case in the switch statement, so if options->op_type is an unknown value, the function will use uninitialized values. Fix it by adding a default. Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application") Cc: stable@dpdk.org Signed-off-by: Olivier Matz Acked-by: Pablo de Lara --- diff --git a/app/test-crypto-perf/cperf_test_verify.c b/app/test-crypto-perf/cperf_test_verify.c index 5221f22513..36be7b8647 100644 --- a/app/test-crypto-perf/cperf_test_verify.c +++ b/app/test-crypto-perf/cperf_test_verify.c @@ -366,6 +366,9 @@ cperf_verify_op(struct rte_crypto_op *op, auth = 1; auth_offset = vector->aad.length + options->test_buffer_size; break; + default: + res = 1; + goto out; } if (cipher == 1) { @@ -386,6 +389,7 @@ cperf_verify_op(struct rte_crypto_op *op, options->digest_sz); } +out: rte_free(data); return !!res; }