RE: [PATCH] staging/easycap: fix mismatch in easycap_poll() mutexlock-unlock

From: Winkler, Tomas
Date: Mon Aug 29 2011 - 13:52:12 EST




> -----Original Message-----
> From: Alexey Khoroshilov [mailto:khoroshilov@xxxxxxxxx]
> Sent: Monday, August 29, 2011 8:47 PM
> To: Greg Kroah-Hartman
> Cc: Alexey Khoroshilov; Winkler, Tomas; Mike Thomas;
> devel@xxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; ldv-
> project@xxxxxxxxx
> Subject: [PATCH] staging/easycap: fix mismatch in easycap_poll() mutex lock-
> unlock
>
> In case if condition (kd != isdongle(peasycap)) becomes true,
> easycap_poll() returns without releasing
> easycapdc60_dongle[kd].mutex_video.
> The patch adds mutex_unlock() before that return.
>
> Found by Linux Driver Verification project (linuxtesting.org).
>
> Signed-off-by: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>


Looks correct, thanks
Tomas

> ---
> drivers/staging/easycap/easycap_main.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/staging/easycap/easycap_main.c
> b/drivers/staging/easycap/easycap_main.c
> index bea2816..3ea51c3 100644
> --- a/drivers/staging/easycap/easycap_main.c
> +++ b/drivers/staging/easycap/easycap_main.c
> @@ -953,8 +953,10 @@ static unsigned int easycap_poll(struct file *file,
> poll_table *wait)
> * peasycap, IN WHICH CASE A REPEAT CALL TO isdongle() WILL FAIL.
> * IF NECESSARY, BAIL OUT.
> */
> - if (kd != isdongle(peasycap))
> + if (kd != isdongle(peasycap)) {
> +
> mutex_unlock(&easycapdc60_dongle[kd].mutex_video);
> return -ERESTARTSYS;
> + }
> if (!file) {
> SAY("ERROR: file is NULL\n");
>
> mutex_unlock(&easycapdc60_dongle[kd].mutex_video);
> --
> 1.7.4.1

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/