[v2] app/crypto-perf: fix dereference of null return

Message ID 1619695449-44438-1-git-send-email-humin29@huawei.com (mailing list archive)
State Changes Requested, archived
Delegated to: akhil goyal
Headers
Series [v2] app/crypto-perf: fix dereference of null return |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot fail github build: failed
ci/iol-intel-Functional fail Functional Testing issues
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-abi-testing warning Testing issues
ci/iol-testing fail Testing issues
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation fail Compilation issues

Commit Message

humin (Q) April 29, 2021, 11:24 a.m. UTC
  Return value of a function 'rte_zmalloc' is dereferenced without
checking, and it may call segmentation fault.

This patch fixed it.

Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")
Cc: stable@dpdk.org

Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
v2:
* fix compiling warning.
---
 app/test-crypto-perf/cperf_options_parsing.c | 6 ++++++
 1 file changed, 6 insertions(+)
  

Comments

Akhil Goyal May 5, 2021, 3:06 p.m. UTC | #1
> Return value of a function 'rte_zmalloc' is dereferenced without
> checking, and it may call segmentation fault.
> 
> This patch fixed it.
> 
> Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test
> application")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
> ---
> v2:
> * fix compiling warning.
Please fix the compilation reported by CI
In file included from ../lib/eal/include/rte_bus.h:24:0,
                 from ../lib/eal/include/rte_eal.h:21,
                 from ../lib/eal/include/rte_lcore.h:16,
                 from ../lib/eal/include/generic/rte_spinlock.h:21,
                 from ../lib/eal/x86/include/rte_spinlock.h:12,
                 from ../lib/mempool/rte_mempool.h:44,
                 from ../lib/mbuf/rte_mbuf.h:38,
                 from ../lib/cryptodev/rte_crypto.h:20,
                 from ../lib/cryptodev/rte_cryptodev.h:22,
                 from ../app/test-crypto-perf/cperf_options_parsing.c:8:
../app/test-crypto-perf/cperf_options_parsing.c: In function ‘parse_test_name’:
../app/test-crypto-perf/cperf_options_parsing.c:511:19: error: format ‘%u’ expects argument of type ‘unsigned int’, but argument 4 has type ‘size_t {aka long unsigned int}’ [-Werror=format=]
    strlen(arg) + 3);
    ~~~~~~~~~~~~~~~^
../lib/eal/include/rte_log.h:348:25: note: in definition of macro ‘RTE_LOG’
    RTE_LOGTYPE_ ## t, # t ": " __VA_ARGS__)
  

Patch

diff --git a/app/test-crypto-perf/cperf_options_parsing.c b/app/test-crypto-perf/cperf_options_parsing.c
index 40b6dfb..0dd0aa4 100644
--- a/app/test-crypto-perf/cperf_options_parsing.c
+++ b/app/test-crypto-perf/cperf_options_parsing.c
@@ -506,6 +506,12 @@  parse_test_name(struct cperf_options *opts,
 {
 	char *test_name = (char *) rte_zmalloc(NULL,
 		sizeof(char) * (strlen(arg) + 3), 0);
+	if (test_name == NULL) {
+		RTE_LOG(ERR, USER1, "Failed to rte zmalloc with size: %u\n",
+			strlen(arg) + 3);
+		return -1;
+	}
+
 	snprintf(test_name, strlen(arg) + 3, "[%s]", arg);
 	opts->test_name = test_name;