Re: Input: add Cypress TTSP capacitive multi-touch screen support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Feb 1, 2012 at 10:40 AM, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
> Hello Javier Martinez Canillas,
>
> This is a semi-automatic email about new static checker warnings.
>
> The patch 4065d1e7b216: "Input: add Cypress TTSP capacitive
> multi-touch screen support" from Jan 31, 2012, leads to the following
> Smatch complaint:
>
> drivers/input/touchscreen/cyttsp_core.c +526 cyttsp_probe()
>         warn: variable dereferenced before check 'dev' (see line 521)
>
> drivers/input/touchscreen/cyttsp_core.c
>   520  {
>   521          const struct cyttsp_platform_data *pdata = dev->platform_data;
>                                                           ^^^^^
> dereference.
>
>   522          struct cyttsp *ts;
>   523          struct input_dev *input_dev;
>   524          int error;
>   525
>   526          if (!dev || !bus_ops || !pdata || !pdata->name || irq <= 0) {
>                    ^^^^
> check.
>
>   527                  error = -EINVAL;
>   528                  goto err_out;
>
> "dev" is never NULL here so the check can be removed probably.
>
> regards,
> dan carpenter

Hello Dan,

Thank you for running smatch on this driver.
dev is never NULL since both i2c and spi bus drivers pass as an
argument a pointer to a member of an previously allocated structure
(struct i2c_client and struct spi_device respectively).

But you are right that is wrong to check after dereferencing the
pointer. Instead of remove the !dev check I will move the pdata
assignment after the check. I'll send a patch now to fix the issue.

Thank you and best regards,
Javier
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux