All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 3v] char: hw_random: core.c:  Changed from using strncat to strlcat
@ 2014-10-16 17:15 Rickard Strandqvist
  2014-10-16 17:25 ` Joe Perches
  2014-10-16 17:53 ` Jason Cooper
  0 siblings, 2 replies; 9+ messages in thread
From: Rickard Strandqvist @ 2014-10-16 17:15 UTC (permalink / raw)
  To: Matt Mackall, Herbert Xu
  Cc: Rickard Strandqvist, Torsten Duwe, Theodore Ts'o,
	Jason Cooper, Amit Shah, Stephen Boyd, Paul Gortmaker, Kees Cook,
	Dan Carpenter, linux-kernel

The buf is used to hold the list of hwrng devices registered.
The old code ensures we don't walk off the end of buf as we
fill it, but it's unnecessarily complicated and thus difficult
to maintain. Simplify it by using strlcat.
We also ensure the string within buf is NULL terminated
so the final strlen is ok.

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


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-10-16 18:12 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-16 17:15 [PATCH 3v] char: hw_random: core.c: Changed from using strncat to strlcat Rickard Strandqvist
2014-10-16 17:25 ` Joe Perches
2014-10-16 17:41   ` Rickard Strandqvist
2014-10-16 17:53     ` Joe Perches
2014-10-16 17:48   ` Jason Cooper
2014-10-16 17:55     ` Joe Perches
2014-10-16 18:05       ` Jason Cooper
2014-10-16 18:11         ` Rickard Strandqvist
2014-10-16 17:53 ` Jason Cooper

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.