mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jason Cooper <jason@lakedaemon.net>
To: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Cc: Matt Mackall <mpm@selenic.com>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	Torsten Duwe <duwe@lst.de>, "Theodore Ts'o" <tytso@mit.edu>,
	Amit Shah <amit.shah@redhat.com>,
	Stephen Boyd <sboyd@codeaurora.org>,
	Paul Gortmaker <paul.gortmaker@windriver.com>,
	Kees Cook <keescook@chromium.org>,
	Dan Carpenter <dan.carpenter@oracle.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] char: hw_random: core.c:  Changed from using strncat to strlcat
Date: Sun, 12 Oct 2014 15:22:09 -0400	[thread overview]
Message-ID: <20141012192209.GC14147@titan.lakedaemon.net> (raw)
In-Reply-To: <1413110971-17392-1-git-send-email-rickard_strandqvist@spectrumdigital.se>

Rickard,

On Sun, Oct 12, 2014 at 12:49:31PM +0200, Rickard Strandqvist wrote:
> Changed from using strncat to strlcat to simplify the code

I'd like to see a little more explicit discussion here.  As Guenter got
caught up in the mis-understanding, I doubt he'd be the only one.  I
think it's worth spelling out that the old code prevents overflowing the
buffer 'buf' of size PAGE_SIZE.  And that strlcat() does that internally
allowing this code to be more readable.

It should also be mentioned that the final strlen(buf) is safe because
every operation on buf will insert a NULL terminator within the
buffers limit.

thx,

Jason.

> Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
> ---
>  drivers/char/hw_random/core.c |   12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
> index aa30a25..1500cfd 100644
> --- a/drivers/char/hw_random/core.c
> +++ b/drivers/char/hw_random/core.c
> @@ -281,7 +281,6 @@ static ssize_t hwrng_attr_available_show(struct device *dev,
>  					 char *buf)
>  {
>  	int err;
> -	ssize_t ret = 0;
>  	struct hwrng *rng;
>  
>  	err = mutex_lock_interruptible(&rng_mutex);
> @@ -289,16 +288,13 @@ static ssize_t hwrng_attr_available_show(struct device *dev,
>  		return -ERESTARTSYS;
>  	buf[0] = '\0';
>  	list_for_each_entry(rng, &rng_list, list) {
> -		strncat(buf, rng->name, PAGE_SIZE - ret - 1);
> -		ret += strlen(rng->name);
> -		strncat(buf, " ", PAGE_SIZE - ret - 1);
> -		ret++;
> +		strlcat(buf, rng->name, PAGE_SIZE);
> +		strlcat(buf, " ", PAGE_SIZE);
>  	}
> -	strncat(buf, "\n", PAGE_SIZE - ret - 1);
> -	ret++;
> +	strlcat(buf, "\n", PAGE_SIZE);
>  	mutex_unlock(&rng_mutex);
>  
> -	return ret;
> +	return strlen(buf);
>  }
>  
>  static DEVICE_ATTR(rng_current, S_IRUGO | S_IWUSR,
> -- 
> 1.7.10.4
> 

  reply	other threads:[~2014-10-13 15:55 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-12 10:49 Rickard Strandqvist
2014-10-12 19:22 ` Jason Cooper [this message]
2014-10-13 21:20   ` Rickard Strandqvist
2014-10-14 15:36     ` Jason Cooper
2014-10-14 21:11       ` Rickard Strandqvist
2014-10-15 14:57         ` Jason Cooper
2014-10-16 16:56           ` Rickard Strandqvist

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=20141012192209.GC14147@titan.lakedaemon.net \
    --to=jason@lakedaemon.net \
    --cc=amit.shah@redhat.com \
    --cc=dan.carpenter@oracle.com \
    --cc=duwe@lst.de \
    --cc=herbert@gondor.apana.org.au \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpm@selenic.com \
    --cc=paul.gortmaker@windriver.com \
    --cc=rickard_strandqvist@spectrumdigital.se \
    --cc=sboyd@codeaurora.org \
    --cc=tytso@mit.edu \
    /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

all inboxes | Powered by JetHome®