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
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]>