From: Dan Carpenter <dan.carpenter@oracle.com>
To: Lars-Peter Clausen <lars@metafoo.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
devel@driverdev.osuosl.org, linux-iio@vger.kernel.org,
Jonathan Cameron <jic23@cam.ac.uk>
Subject: Re: [PATCH 01/18] iio: Add helper functions for enum style channel attributes
Date: Mon, 4 Jun 2012 23:36:55 +0300 [thread overview]
Message-ID: <20120604203655.GA4297@mwanda> (raw)
In-Reply-To: <4FCD16AB.5020909@metafoo.de>
On Mon, Jun 04, 2012 at 10:12:27PM +0200, Lars-Peter Clausen wrote:
> On 06/04/2012 12:55 PM, Dan Carpenter wrote:
> > On Mon, Jun 04, 2012 at 11:36:11AM +0200, Lars-Peter Clausen wrote:
> >> +ssize_t iio_enum_available_read(struct iio_dev *indio_dev,
> >> + uintptr_t priv, const struct iio_chan_spec *chan, char *buf)
> >> +{
> >> + const struct iio_enum *e = (const struct iio_enum *)priv;
> >> + unsigned int i;
> >> + size_t len = 0;
> >> +
> >> + if (!e->num_items)
> >> + return 0;
> >> +
> >> + for (i = 0; i < e->num_items; ++i)
> >> + len += snprintf(buf + len, PAGE_SIZE - len, "%s ", e->items[i]);
> >> +
> >> + /* replace last space with a newline */
> >> + buf[len - 1] = '\n';
> >> +
> >
> > It would be better to use scnprintf() here instead of snprintf().
> > snprintf() returns the number of characters that would have been
> > printed if there were space (not counting the NULL), so len - 1 can
> > be beyond the end of the array.
>
> It's even worse, if len is greater than PAGE_SIZE we'll pass a pretty large
> number for the buffer size to snprintf and it will happily write beyond the
> buffers limits. So as it is right now the snprintf isn't really any better than
> a sprintf. I'll resend the patch with scnprintf.
No. Negative numbers just trigger the WARN_ON_ONCE() in
vsnprintf() and not print anything.
Although, in user space, snprintf() does treat negatives as a large
positive.
regards,
dan carpenter
next prev parent reply other threads:[~2012-06-04 20:36 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-04 9:36 [PATCH 01/18] iio: Add helper functions for enum style channel attributes Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 02/18] staging:iio:dac:ad5064: Use iio_enum for powerdown modes Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 03/18] staging:iio:dac:ad5446: " Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 04/18] staging:iio:dac:ad5380: Convert to extended channel attributes Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 05/18] staging:iio:dac:ad5504: " Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 06/18] staging:iio:dac:ad5624r: " Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 07/18] staging:iio:dac:ad5686: " Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 08/18] staging:iio:dac:ad5791: " Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 09/18] staging:iio:dac: Remove unused dac.h includes Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 10/18] staging:iio:dac:max517: Convert to channel spec Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 11/18] staging:iio:dac: Remove dac.h Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 12/18] staging:iio:dac:ad5504: Use strtobool for boolean values Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 13/18] staging:iio:dac:ad5624r: " Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 14/18] staging:iio:dac:ad5791: " Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 15/18] staging:iio:dac:ad5504: Check if IRQ was requested before freeing it Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 16/18] staging:iio:dac:ad5504: Move private structs and defines from header to C file Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 17/18] staging:iio:dac:ad5791: " Lars-Peter Clausen
2012-06-04 9:36 ` [PATCH 18/18] staging:iio: Move DAC drivers out of staging Lars-Peter Clausen
2012-06-04 10:55 ` [PATCH 01/18] iio: Add helper functions for enum style channel attributes Dan Carpenter
2012-06-04 20:12 ` Lars-Peter Clausen
2012-06-04 20:36 ` Dan Carpenter [this message]
2012-06-05 4:45 ` Greg Kroah-Hartman
-- strict thread matches above, loose matches on Subject: below --
2012-05-21 11:42 Lars-Peter Clausen
2012-05-21 16:40 ` Jonathan Cameron
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=20120604203655.GA4297@mwanda \
--to=dan.carpenter@oracle.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=jic23@cam.ac.uk \
--cc=lars@metafoo.de \
--cc=linux-iio@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).