]> git.baikalelectronics.ru Git - kernel.git/commit
platform/chrome: cros_ec_dev - double fetch bug in ioctl
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 21 Jun 2016 13:58:46 +0000 (16:58 +0300)
committerOlof Johansson <olof@lixom.net>
Tue, 5 Jul 2016 21:01:52 +0000 (14:01 -0700)
commit4e99cb8082e7117ba1491c4cb74bd1f54c0f8e83
tree7e123fe975c5578ff97ad21811f9e4500210fb0c
parent20622c255526a9beb99383b4e2d9baa90b16c9d4
platform/chrome: cros_ec_dev - double fetch bug in ioctl

We verify "u_cmd.outsize" and "u_cmd.insize" but we need to make sure
that those values have not changed between the two copy_from_user()
calls.  Otherwise it could lead to a buffer overflow.

Additionally, cros_ec_cmd_xfer() can set s_cmd->insize to a lower value.
We should use the new smaller value so we don't copy too much data to
the user.

Reported-by: Pengfei Wang <wpengfeinudt@gmail.com>
Fixes: 936cee410617 ('mfd: cros_ec: Use a zero-length array for command data')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Cc: <stable@vger.kernel.org> # v4.2+
Signed-off-by: Olof Johansson <olof@lixom.net>
drivers/platform/chrome/cros_ec_dev.c