Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22f88fcf authored by Alexey Khoroshilov's avatar Alexey Khoroshilov Committed by Greg Kroah-Hartman
Browse files

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: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
Acked-by: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 0f18f767
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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);