提交 64905b48 编写于 作者: D Dan Carpenter 提交者: Greg Kroah-Hartman

USB: ftdi_sio: unlock_kernel() on error in set_serial_info()

There was one error path where unlock_kernel() wasn't called.

This was found with a code checker (http://repo.or.cz/w/smatch.git/)
Compile tested only, sorry.
Signed-off-by: NDan Carpenter <error27@gmail.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 506e9469
...@@ -1065,8 +1065,10 @@ static int set_serial_info(struct tty_struct *tty, ...@@ -1065,8 +1065,10 @@ static int set_serial_info(struct tty_struct *tty,
if (!capable(CAP_SYS_ADMIN)) { if (!capable(CAP_SYS_ADMIN)) {
if (((new_serial.flags & ~ASYNC_USR_MASK) != if (((new_serial.flags & ~ASYNC_USR_MASK) !=
(priv->flags & ~ASYNC_USR_MASK))) (priv->flags & ~ASYNC_USR_MASK))) {
unlock_kernel();
return -EPERM; return -EPERM;
}
priv->flags = ((priv->flags & ~ASYNC_USR_MASK) | priv->flags = ((priv->flags & ~ASYNC_USR_MASK) |
(new_serial.flags & ASYNC_USR_MASK)); (new_serial.flags & ASYNC_USR_MASK));
priv->custom_divisor = new_serial.custom_divisor; priv->custom_divisor = new_serial.custom_divisor;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册