All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: linux-wireless@vger.kernel.org
Subject: Re: net: rfkill: gpio: convert to descriptor-based GPIO interface
Date: Tue, 14 Jan 2014 16:41:30 +0200	[thread overview]
Message-ID: <20140114144130.GC21169@xps8300> (raw)
In-Reply-To: <20140108152837.GA3017@elgon.mountain>

Hi,

On Wed, Jan 08, 2014 at 06:28:38PM +0300, Dan Carpenter wrote:
> Hello Heikki Krogerus,
> 
> This is a semi-automatic email about new static checker warnings.
> 
> The patch 2111cad655e3: "net: rfkill: gpio: convert to
> descriptor-based GPIO interface" from Nov 26, 2013, leads to the
> following Smatch complaint:
> 
> net/rfkill/rfkill-gpio.c:144 rfkill_gpio_probe()
> 	 warn: variable dereferenced before check 'rfkill->name' (see line 144)
> 
> net/rfkill/rfkill-gpio.c
>    111          len = strlen(rfkill->name);
>                              ^^^^^^^^^^^^
> Dereference.
> 
>    112          rfkill->reset_name = devm_kzalloc(&pdev->dev, len + 7, GFP_KERNEL);
>    113          if (!rfkill->reset_name)
>    114                  return -ENOMEM;
>    115  
>    116          rfkill->shutdown_name = devm_kzalloc(&pdev->dev, len + 10, GFP_KERNEL);
>    117          if (!rfkill->shutdown_name)
>    118                  return -ENOMEM;
>    119  
>    120          snprintf(rfkill->reset_name, len + 6 , "%s_reset", rfkill->name);
>    121          snprintf(rfkill->shutdown_name, len + 9, "%s_shutdown", rfkill->name);
>    122  
>    123          rfkill->clk = devm_clk_get(&pdev->dev, clk_name);
>    124  
>    125          gpio = devm_gpiod_get_index(&pdev->dev, rfkill->reset_name, 0);
>    126          if (!IS_ERR(gpio)) {
>    127                  ret = gpiod_direction_output(gpio, 0);
>    128                  if (ret)
>    129                          return ret;
>    130                  rfkill->reset_gpio = gpio;
>    131          }
>    132  
>    133          gpio = devm_gpiod_get_index(&pdev->dev, rfkill->shutdown_name, 1);
>    134          if (!IS_ERR(gpio)) {
>    135                  ret = gpiod_direction_output(gpio, 0);
>    136                  if (ret)
>    137                          return ret;
>    138                  rfkill->shutdown_gpio = gpio;
>    139          }
>    140  
>    141          /* Make sure at-least one of the GPIO is defined and that
>    142           * a name is specified for this instance
>    143		 */
>    144		if ((!rfkill->reset_gpio && !rfkill->shutdown_gpio) || !rfkill->name) {
>                                                                         ^^^^^^^^^^^^
> The check was originally before the dereference, but the patch moves it
> after the dereference.
> 
>    145			dev_err(&pdev->dev, "invalid platform data\n");
>    146			return -EINVAL;

OK, this needs to be fixed.

Thanks!

-- 
heikki

      reply	other threads:[~2014-01-14 14:41 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-08 15:28 net: rfkill: gpio: convert to descriptor-based GPIO interface Dan Carpenter
2014-01-14 14:41 ` Heikki Krogerus [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140114144130.GC21169@xps8300 \
    --to=heikki.krogerus@linux.intel.com \
    --cc=dan.carpenter@oracle.com \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.