2014-01-25 21:47:48

by Christian Engelmayer

[permalink] [raw]
Subject: [PATCH] misc: genwqe: Fix potential memory leak when pinning memory

Fix a memory leak in the genwqe_pin_mem() error path as called by
ioctl GENWQE_PIN_MEM. In case there is an error encountered when
mapping memory, the already allocated dma_mapping struct needs to
be freed correctly.

Detected by Coverity: CID 1162606.

Signed-off-by: Christian Engelmayer <[email protected]>
---
drivers/misc/genwqe/card_dev.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/misc/genwqe/card_dev.c b/drivers/misc/genwqe/card_dev.c
index 8f8a6b3..2c2c9cc 100644
--- a/drivers/misc/genwqe/card_dev.c
+++ b/drivers/misc/genwqe/card_dev.c
@@ -787,6 +787,7 @@ static int genwqe_pin_mem(struct genwqe_file *cfile, struct genwqe_mem *m)
if (rc != 0) {
dev_err(&pci_dev->dev,
"[%s] genwqe_user_vmap rc=%d\n", __func__, rc);
+ kfree(dma_map);
return rc;
}

--
1.8.3.2


2014-01-27 09:11:56

by haver

[permalink] [raw]
Subject: Re: [PATCH] misc: genwqe: Fix potential memory leak when pinning memory

Hi Christian,

Am Samstag, den 25.01.2014, 22:47 +0100 schrieb Christian Engelmayer:
> Fix a memory leak in the genwqe_pin_mem() error path as called by
> ioctl GENWQE_PIN_MEM. In case there is an error encountered when
> mapping memory, the already allocated dma_mapping struct needs to
> be freed correctly.
>
> Detected by Coverity: CID 1162606.
>
> Signed-off-by: Christian Engelmayer <[email protected]>
> ---
> drivers/misc/genwqe/card_dev.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/misc/genwqe/card_dev.c b/drivers/misc/genwqe/card_dev.c
> index 8f8a6b3..2c2c9cc 100644
> --- a/drivers/misc/genwqe/card_dev.c
> +++ b/drivers/misc/genwqe/card_dev.c
> @@ -787,6 +787,7 @@ static int genwqe_pin_mem(struct genwqe_file *cfile, struct genwqe_mem *m)
> if (rc != 0) {
> dev_err(&pci_dev->dev,
> "[%s] genwqe_user_vmap rc=%d\n", __func__, rc);
> + kfree(dma_map);
> return rc;
> }
>

thanks for discovering and fixing the problem.

Acked-by: Frank Haverkamp <[email protected]>