[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20210617082058.955-1-thunder.leizhen@huawei.com>
Date: Thu, 17 Jun 2021 16:20:58 +0800
From: Zhen Lei <thunder.leizhen@...wei.com>
To: Andy Gross <agross@...nel.org>,
Bjorn Andersson <bjorn.andersson@...aro.org>,
Vinod Koul <vkoul@...nel.org>,
linux-arm-msm <linux-arm-msm@...r.kernel.org>,
dmaengine <dmaengine@...r.kernel.org>,
linux-kernel <linux-kernel@...r.kernel.org>
CC: Zhen Lei <thunder.leizhen@...wei.com>
Subject: [PATCH 1/1] dmaengine: qcom: Fix possible memory leak
When krealloc() fails to expand the memory and returns NULL, the original
memory is not released. In addition, subsequent memcpy() operation will
overwrite the entire valid memory space, so using krealloc() to preserve
the old content is not necessary.
Change to release the old memory and then apply for new memory.
Fixes: 5d0c3533a19f ("dmaengine: qcom: Add GPI dma driver")
Signed-off-by: Zhen Lei <thunder.leizhen@...wei.com>
---
drivers/dma/qcom/gpi.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/dma/qcom/gpi.c b/drivers/dma/qcom/gpi.c
index 43ac3ab23d4c..e24fe64f3b63 100644
--- a/drivers/dma/qcom/gpi.c
+++ b/drivers/dma/qcom/gpi.c
@@ -1625,7 +1625,8 @@ gpi_peripheral_config(struct dma_chan *chan, struct dma_slave_config *config)
if (!config->peripheral_config)
return -EINVAL;
- gchan->config = krealloc(gchan->config, config->peripheral_size, GFP_NOWAIT);
+ kfree(gchan->config);
+ gchan->config = kmalloc(config->peripheral_size, GFP_NOWAIT);
if (!gchan->config)
return -ENOMEM;
--
2.25.1
Powered by blists - more mailing lists