2021-10-08 06:31:58

by Jiasheng Jiang

[permalink] [raw]
Subject: [PATCH] iio/scmi: check if dev is null pointer

The parameter 'dev' of scmi_iio_dev_probe() isn't been
checked before used, including when scmi_iio_dev_probe() is called.
Therefore, it might be better to check, just in case.

Fixes: 25cbdd4 ("iio/scmi: Port driver to the new scmi_sensor_proto_ops interface")
Signed-off-by: Jiasheng Jiang <[email protected]>
---
drivers/iio/common/scmi_sensors/scmi_iio.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/iio/common/scmi_sensors/scmi_iio.c b/drivers/iio/common/scmi_sensors/scmi_iio.c
index 141e8aa..d3ff985 100644
--- a/drivers/iio/common/scmi_sensors/scmi_iio.c
+++ b/drivers/iio/common/scmi_sensors/scmi_iio.c
@@ -592,6 +592,9 @@ static int scmi_iio_dev_probe(struct scmi_device *sdev)

if (!handle)
return -ENODEV;
+
+ if (!dev)
+ return -ENODEV;

sensor_ops = handle->devm_protocol_get(sdev, SCMI_PROTOCOL_SENSOR, &ph);
if (IS_ERR(sensor_ops)) {
--
2.7.4


2021-10-08 09:04:02

by Lars-Peter Clausen

[permalink] [raw]
Subject: Re: [PATCH] iio/scmi: check if dev is null pointer

On 10/8/21 8:29 AM, Jiasheng Jiang wrote:
> The parameter 'dev' of scmi_iio_dev_probe() isn't been
> checked before used, including when scmi_iio_dev_probe() is called.
> Therefore, it might be better to check, just in case.
>
> Fixes: 25cbdd4 ("iio/scmi: Port driver to the new scmi_sensor_proto_ops interface")
> Signed-off-by: Jiasheng Jiang <[email protected]>

Hi,

Thanks for the patch.

Is there anything that makes you think dev could ever be NULL? dev is a
pointer to a field in `sdev`. So for `dev` to be NULL sdev would have to
be `-offsetof(struct scmi_device, dev)`.


- Lars

> ---
> drivers/iio/common/scmi_sensors/scmi_iio.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/iio/common/scmi_sensors/scmi_iio.c b/drivers/iio/common/scmi_sensors/scmi_iio.c
> index 141e8aa..d3ff985 100644
> --- a/drivers/iio/common/scmi_sensors/scmi_iio.c
> +++ b/drivers/iio/common/scmi_sensors/scmi_iio.c
> @@ -592,6 +592,9 @@ static int scmi_iio_dev_probe(struct scmi_device *sdev)
>
> if (!handle)
> return -ENODEV;
> +
> + if (!dev)
> + return -ENODEV;
>
> sensor_ops = handle->devm_protocol_get(sdev, SCMI_PROTOCOL_SENSOR, &ph);
> if (IS_ERR(sensor_ops)) {