media: bdisp: fix memleak on release
authorJohan Hovold <johan@kernel.org>
Thu, 10 Oct 2019 13:13:31 +0000 (10:13 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 21 Dec 2019 09:42:03 +0000 (10:42 +0100)
commit 11609a7e21f8cea42630350aa57662928fa4dc63 upstream.

If a process is interrupted while accessing the video device and the
device lock is contended, release() could return early and fail to free
related resources.

Note that the return value of the v4l2 release file operation is
ignored.

Fixes: 28ffeebbb7bd ("[media] bdisp: 2D blitter driver using v4l2 mem2mem framework")
Cc: stable <stable@vger.kernel.org> # 4.2
Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Fabien Dessenne <fabien.dessenne@st.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/platform/sti/bdisp/bdisp-v4l2.c

index 45f82b5ddd770757d79b0a2c93f9c31bdc453528..d88c9ba401b5d84d79fb9d9d64a9671cbcef6b58 100644 (file)
@@ -651,8 +651,7 @@ static int bdisp_release(struct file *file)
 
        dev_dbg(bdisp->dev, "%s\n", __func__);
 
-       if (mutex_lock_interruptible(&bdisp->lock))
-               return -ERESTARTSYS;
+       mutex_lock(&bdisp->lock);
 
        v4l2_m2m_ctx_release(ctx->fh.m2m_ctx);