lkml.org 
[lkml]   [2019]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: [PATCH] dmaengine: virt-dma: Fix access after free in vcna_complete()
Date
On Fri, 2019-12-20 at 15:11 +0200, Peter Ujfalusi wrote:
> [External]
>
> vchan_vdesc_fini() is freeing up 'vd' so the access to vd->tx_result is
> via already freed up memory.
>
> Move the vchan_vdesc_fini() after invoking the callback to avoid this.
>

Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>

> Fixes: 09d5b702b0f97 ("dmaengine: virt-dma: store result on dma
> descriptor")
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> ---
> drivers/dma/virt-dma.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/dma/virt-dma.c b/drivers/dma/virt-dma.c
> index ec4adf4260a0..256fc662c500 100644
> --- a/drivers/dma/virt-dma.c
> +++ b/drivers/dma/virt-dma.c
> @@ -104,9 +104,8 @@ static void vchan_complete(unsigned long arg)
> dmaengine_desc_get_callback(&vd->tx, &cb);
>
> list_del(&vd->node);
> - vchan_vdesc_fini(vd);
> -
> dmaengine_desc_callback_invoke(&cb, &vd->tx_result);
> + vchan_vdesc_fini(vd);
> }
> }
>
\
 
 \ /
  Last update: 2019-12-20 14:57    [W:0.052 / U:9.064 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site