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

Commit 60c00ab0 authored by viresh kumar's avatar viresh kumar Committed by TARKZiM
Browse files

i2c-dev: don't get i2c adapter via i2c_dev



commit 5136ed4fcb05cd4981cc6034a11e66370ed84789 upstream.

There is no code protecting i2c_dev to be freed after it is returned
from i2c_dev_get_by_minor() and using it to access the value which we
already have (minor) isn't safe really.

Avoid using it and get the adapter directly from 'minor'.

Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: default avatarJean Delvare <jdelvare@suse.de>
Tested-by: default avatarJean Delvare <jdelvare@suse.de>
Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
Signed-off-by: default avatarBen Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
Change-Id: Ie2d557a25ad889bcfc96d79e9680c79f078c0981
parent 43da13ff
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -495,13 +495,8 @@ static int i2cdev_open(struct inode *inode, struct file *file)
	unsigned int minor = iminor(inode);
	struct i2c_client *client;
	struct i2c_adapter *adap;
	struct i2c_dev *i2c_dev;

	i2c_dev = i2c_dev_get_by_minor(minor);
	if (!i2c_dev)
		return -ENODEV;

	adap = i2c_get_adapter(i2c_dev->adap->nr);
	adap = i2c_get_adapter(minor);
	if (!adap)
		return -ENODEV;