All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Fries <David@Fries.net>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Evgeniy Polyakov <zbr@ioremap.net>,
	linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
Subject: Re: [patch] w1: small type cleanup in sysfs
Date: Tue, 11 Feb 2014 16:45:13 +0000	[thread overview]
Message-ID: <20140211164513.GF5530@spacedout.fries.net> (raw)
In-Reply-To: <20140211160826.GD9406@elgon.mountain>

Dan,

I have some other changes in work, how automated is your checkers?
How much work is it for me to give a github repository and branch and
find out if I introduced any problems before submitting them?


I didn't get how you could get a less than one after a check for less
than one from the description or patch until I looked at the rest of
the source code.  Looks good if the description mentions
max_slave_count is an int.

How about wording it,

On 64 bit systems, a large value for "long tmp" is truncated when
assigning to "int md->max_slave_count" so we still end up with a value
less than one despite the "tmp < 1" check.

Acked-by: David Fries <david@fries.net>

On Tue, Feb 11, 2014 at 07:08:26PM +0300, Dan Carpenter wrote:
> On 64 bit systems, a large value for "tmp" could be truncated so we
> still end up with a ->max_slave_count which is less than one despite the
> "tmp < 1" check.
> 
> This is more of a problem for static checkers than a real life issue,
> but it's simple enough to fix.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c
> index 9eb816b2ea5e..b96f61b15dc6 100644
> --- a/drivers/w1/w1.c
> +++ b/drivers/w1/w1.c
> @@ -320,10 +320,10 @@ static ssize_t w1_master_attribute_show_timeout(struct device *dev, struct devic
>  static ssize_t w1_master_attribute_store_max_slave_count(struct device *dev,
>  	struct device_attribute *attr, const char *buf, size_t count)
>  {
> -	long tmp;
> +	int tmp;
>  	struct w1_master *md = dev_to_w1_master(dev);
>  
> -	if (kstrtol(buf, 0, &tmp) = -EINVAL || tmp < 1)
> +	if (kstrtoint(buf, 0, &tmp) = -EINVAL || tmp < 1)
>  		return -EINVAL;
>  
>  	mutex_lock(&md->mutex);

-- 
David Fries <david@fries.net>    PGP pub CB1EE8F0
http://fries.net/~david/

WARNING: multiple messages have this Message-ID (diff)
From: David Fries <David@Fries.net>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Evgeniy Polyakov <zbr@ioremap.net>,
	linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
Subject: Re: [patch] w1: small type cleanup in sysfs
Date: Tue, 11 Feb 2014 10:45:13 -0600	[thread overview]
Message-ID: <20140211164513.GF5530@spacedout.fries.net> (raw)
In-Reply-To: <20140211160826.GD9406@elgon.mountain>

Dan,

I have some other changes in work, how automated is your checkers?
How much work is it for me to give a github repository and branch and
find out if I introduced any problems before submitting them?


I didn't get how you could get a less than one after a check for less
than one from the description or patch until I looked at the rest of
the source code.  Looks good if the description mentions
max_slave_count is an int.

How about wording it,

On 64 bit systems, a large value for "long tmp" is truncated when
assigning to "int md->max_slave_count" so we still end up with a value
less than one despite the "tmp < 1" check.

Acked-by: David Fries <david@fries.net>

On Tue, Feb 11, 2014 at 07:08:26PM +0300, Dan Carpenter wrote:
> On 64 bit systems, a large value for "tmp" could be truncated so we
> still end up with a ->max_slave_count which is less than one despite the
> "tmp < 1" check.
> 
> This is more of a problem for static checkers than a real life issue,
> but it's simple enough to fix.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c
> index 9eb816b2ea5e..b96f61b15dc6 100644
> --- a/drivers/w1/w1.c
> +++ b/drivers/w1/w1.c
> @@ -320,10 +320,10 @@ static ssize_t w1_master_attribute_show_timeout(struct device *dev, struct devic
>  static ssize_t w1_master_attribute_store_max_slave_count(struct device *dev,
>  	struct device_attribute *attr, const char *buf, size_t count)
>  {
> -	long tmp;
> +	int tmp;
>  	struct w1_master *md = dev_to_w1_master(dev);
>  
> -	if (kstrtol(buf, 0, &tmp) == -EINVAL || tmp < 1)
> +	if (kstrtoint(buf, 0, &tmp) == -EINVAL || tmp < 1)
>  		return -EINVAL;
>  
>  	mutex_lock(&md->mutex);

-- 
David Fries <david@fries.net>    PGP pub CB1EE8F0
http://fries.net/~david/

  reply	other threads:[~2014-02-11 16:45 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-11 16:08 [patch] w1: small type cleanup in sysfs Dan Carpenter
2014-02-11 16:08 ` Dan Carpenter
2014-02-11 16:45 ` David Fries [this message]
2014-02-11 16:45   ` David Fries
2014-02-11 21:07   ` [patch v2] " Dan Carpenter
2014-02-11 21:07     ` Dan Carpenter
2014-02-14 15:42     ` Evgeniy Polyakov
2014-02-14 15:42       ` Evgeniy Polyakov
2014-02-19  7:19       ` [PATCH] w1: bundle reply if the request was bundled David Fries
2014-02-20 21:07         ` Evgeniy Polyakov
2014-02-11 21:12   ` [patch] w1: small type cleanup in sysfs Dan Carpenter
2014-02-11 21:12     ` Dan Carpenter

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=20140211164513.GF5530@spacedout.fries.net \
    --to=david@fries.net \
    --cc=dan.carpenter@oracle.com \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=zbr@ioremap.net \
    /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.