aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVlad Tsyrklevich <vlad@tsyrklevich.net>2017-01-09 22:53:36 +0700
committerWolfram Sang <wsa@the-dreams.de>2017-01-12 20:06:10 +0100
commit30f939feaeee23e21391cfc7b484f012eb189c3c (patch)
tree5eaf8a5243a0bc0dcd37f138774cbdd1d3ec41b3
parentLinux 4.10-rc3 (diff)
downloadlinux-dev-30f939feaeee23e21391cfc7b484f012eb189c3c.tar.xz
linux-dev-30f939feaeee23e21391cfc7b484f012eb189c3c.zip
i2c: fix kernel memory disclosure in dev interface
i2c_smbus_xfer() does not always fill an entire block, allowing kernel stack memory disclosure through the temp variable. Clear it before it's read to. Signed-off-by: Vlad Tsyrklevich <vlad@tsyrklevich.net> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Cc: stable@kernel.org
-rw-r--r--drivers/i2c/i2c-dev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c
index 66f323fd3982..6f638bbc922d 100644
--- a/drivers/i2c/i2c-dev.c
+++ b/drivers/i2c/i2c-dev.c
@@ -331,7 +331,7 @@ static noinline int i2cdev_ioctl_smbus(struct i2c_client *client,
unsigned long arg)
{
struct i2c_smbus_ioctl_data data_arg;
- union i2c_smbus_data temp;
+ union i2c_smbus_data temp = {};
int datasize, res;
if (copy_from_user(&data_arg,