aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorRickard Strandqvist <rickard_strandqvist@spectrumdigital.se>2014-10-16 17:17:23 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2014-10-24 10:52:27 -0400
commit61daf055ea42342dea1f7006833bc7cde20eeb34 (patch)
tree626d28dc2ce071460aa41a2a528a542e287c8a17 /drivers/char
parent77ddaba02bb83c4628b4fc1cf36b9ac81b9a7609 (diff)
hwrng: core - Changed from using strncat to strlcat
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. Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se> Reviewed-by: Jason Cooper <jason@lakedaemon.net> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/hw_random/core.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
index aa30a25c8d49..1500cfd799a7 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,
281 char *buf) 281 char *buf)
282{ 282{
283 int err; 283 int err;
284 ssize_t ret = 0;
285 struct hwrng *rng; 284 struct hwrng *rng;
286 285
287 err = mutex_lock_interruptible(&rng_mutex); 286 err = mutex_lock_interruptible(&rng_mutex);
@@ -289,16 +288,13 @@ static ssize_t hwrng_attr_available_show(struct device *dev,
289 return -ERESTARTSYS; 288 return -ERESTARTSYS;
290 buf[0] = '\0'; 289 buf[0] = '\0';
291 list_for_each_entry(rng, &rng_list, list) { 290 list_for_each_entry(rng, &rng_list, list) {
292 strncat(buf, rng->name, PAGE_SIZE - ret - 1); 291 strlcat(buf, rng->name, PAGE_SIZE);
293 ret += strlen(rng->name); 292 strlcat(buf, " ", PAGE_SIZE);
294 strncat(buf, " ", PAGE_SIZE - ret - 1);
295 ret++;
296 } 293 }
297 strncat(buf, "\n", PAGE_SIZE - ret - 1); 294 strlcat(buf, "\n", PAGE_SIZE);
298 ret++;
299 mutex_unlock(&rng_mutex); 295 mutex_unlock(&rng_mutex);
300 296
301 return ret; 297 return strlen(buf);
302} 298}
303 299
304static DEVICE_ATTR(rng_current, S_IRUGO | S_IWUSR, 300static DEVICE_ATTR(rng_current, S_IRUGO | S_IWUSR,