From c761bffe0bb35529e76ec7b13e21af39e87b6424 Mon Sep 17 00:00:00 2001 From: Gagandeep Singh Date: Tue, 9 Apr 2019 06:18:38 +0000 Subject: [PATCH] crypto/caam_jr: fix memory leak and illegal access Opendir() returns allocated storage which must be freed at the end of function or in case any return on error. so freeing the allocation using closedir in an error case. Coverity issue: 323507 Coverity issue: 325880 Fixes: e7a45f3cc245 ("crypto/caam_jr: add UIO specific operations") Cc: stable@dpdk.org Signed-off-by: Gagandeep Singh Acked-by: Akhil Goyal --- drivers/crypto/caam_jr/caam_jr_uio.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/caam_jr/caam_jr_uio.c b/drivers/crypto/caam_jr/caam_jr_uio.c index bf872a220a..afd75c9a62 100644 --- a/drivers/crypto/caam_jr/caam_jr_uio.c +++ b/drivers/crypto/caam_jr/caam_jr_uio.c @@ -362,8 +362,8 @@ free_job_ring(uint32_t uio_fd) job_ring->register_base_addr, (unsigned long)job_ring->map_size, strerror(errno)); } else - CAAM_JR_DEBUG(" JR UIO memory unmapped at %p", - job_ring->register_base_addr); + CAAM_JR_DEBUG("JR UIO memory is unmapped"); + job_ring->register_base_addr = NULL; } @@ -445,7 +445,11 @@ sec_configure(void) ret = file_read_first_line(SEC_UIO_DEVICE_SYS_ATTR_PATH, dir->d_name, "name", uio_name); CAAM_JR_INFO("sec device uio name: %s", uio_name); - SEC_ASSERT(ret == 0, -1, "file_read_first_line failed"); + if (ret != 0) { + CAAM_JR_ERR("file_read_first_line failed\n"); + closedir(d); + return -1; + } if (file_name_match_extract(uio_name, SEC_UIO_DEVICE_NAME, -- 2.20.1