Re: [PATCH] media: vb2: be sure to free on errors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/23/2018 01:07 PM, Mauro Carvalho Chehab wrote:
> As reported by smatch:
> drivers/media/common/videobuf2/videobuf2-core.c: drivers/media/common/videobuf2/videobuf2-core.c:2159 vb2_mmap() warn: inconsistent returns 'mutex:&q->mmap_lock'.
>   Locked on:   line 2148
>   Unlocked on: line 2100
>                line 2108
>                line 2113
>                line 2118
>                line 2156
>                line 2159
> 
> There is one error condition that doesn't unlock a mutex.
> 
> Fixes: cd26d1c4d1bc ("media: vb2: vb2_mmap: move lock up")
> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@xxxxxxxxxx>

Reviewed-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>

Hmm, that's embarrassing... I should have seen that smatch warning.

Regards,

	Hans

> ---
>  drivers/media/common/videobuf2/videobuf2-core.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
> index 04d1250747cf..0ca81d495bda 100644
> --- a/drivers/media/common/videobuf2/videobuf2-core.c
> +++ b/drivers/media/common/videobuf2/videobuf2-core.c
> @@ -2145,7 +2145,8 @@ int vb2_mmap(struct vb2_queue *q, struct vm_area_struct *vma)
>  	if (length < (vma->vm_end - vma->vm_start)) {
>  		dprintk(1,
>  			"MMAP invalid, as it would overflow buffer length\n");
> -		return -EINVAL;
> +		ret = -EINVAL;
> +		goto unlock;
>  	}
>  
>  	ret = call_memop(vb, mmap, vb->planes[plane].mem_priv, vma);
> 




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux