From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 68E96A0521; Mon, 2 Nov 2020 12:36:40 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4DB20C800; Mon, 2 Nov 2020 12:36:39 +0100 (CET) Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by dpdk.org (Postfix) with ESMTP id 615ACC7FC; Mon, 2 Nov 2020 12:36:37 +0100 (CET) Received: from DGGEMS413-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4CPrTs0cNlzhdF1; Mon, 2 Nov 2020 19:36:33 +0800 (CST) Received: from localhost (10.174.187.156) by DGGEMS413-HUB.china.huawei.com (10.3.19.213) with Microsoft SMTP Server id 14.3.487.0; Mon, 2 Nov 2020 19:36:24 +0800 From: wangyunjian To: CC: , , , Yunjian Wang , Date: Mon, 2 Nov 2020 19:36:24 +0800 Message-ID: <4593dfcc7f70361a80cc1ea3b129f29074588e3d.1604317264.git.wangyunjian@huawei.com> X-Mailer: git-send-email 1.9.5.msysgit.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.174.187.156] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH] compress/isal: check allocation in qp setup X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Yunjian Wang The function rte_zmalloc() could return NULL, the return value need to be checked. Fixes: dc49e6aa4879 ("compress/isal: add ISA-L compression functionality") Fixes: 7bf4f0630af6 ("compress/isal: add ISA-L decomp functionality") Cc: stable@dpdk.org Signed-off-by: Yunjian Wang --- drivers/compress/isal/isal_compress_pmd_ops.c | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c b/drivers/compress/isal/isal_compress_pmd_ops.c index 31c4559915..7d03749da3 100644 --- a/drivers/compress/isal/isal_compress_pmd_ops.c +++ b/drivers/compress/isal/isal_compress_pmd_ops.c @@ -249,16 +249,27 @@ isal_comp_pmd_qp_setup(struct rte_compressdev *dev, uint16_t qp_id, qp->stream = rte_zmalloc_socket("Isa-l compression stream ", sizeof(struct isal_zstream), RTE_CACHE_LINE_SIZE, socket_id); - + if (qp->stream == NULL) { + ISAL_PMD_LOG(ERR, "Failed to allocate compression stream memory"); + goto qp_setup_cleanup; + } /* Initialize memory for compression level buffer */ qp->stream->level_buf = rte_zmalloc_socket("Isa-l compression lev_buf", ISAL_DEF_LVL3_DEFAULT, RTE_CACHE_LINE_SIZE, socket_id); + if (qp->stream->level_buf == NULL) { + ISAL_PMD_LOG(ERR, "Failed to allocate compression level_buf memory"); + goto qp_setup_cleanup; + } /* Initialize memory for decompression state structure */ qp->state = rte_zmalloc_socket("Isa-l decompression state", sizeof(struct inflate_state), RTE_CACHE_LINE_SIZE, socket_id); + if (qp->state == NULL) { + ISAL_PMD_LOG(ERR, "Failed to allocate decompression state memory"); + goto qp_setup_cleanup; + } qp->id = qp_id; dev->data->queue_pairs[qp_id] = qp; @@ -284,8 +295,11 @@ isal_comp_pmd_qp_setup(struct rte_compressdev *dev, uint16_t qp_id, return 0; qp_setup_cleanup: - if (qp) - rte_free(qp); + if (qp->stream) + rte_free(qp->stream->level_buf); + rte_free(qp->stream); + rte_free(qp->state); + rte_free(qp); return -1; } -- 2.23.0