hwrng: core - Changed from using strncat to strlcat
authorRickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Thu, 16 Oct 2014 21:17:23 +0000 (23:17 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 24 Oct 2014 14:52:27 +0000 (22:52 +0800)
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>
drivers/char/hw_random/core.c

index aa30a25c8d49bcc2298a64d86d680dab2bdc370c..1500cfd799a79ee4f7d221ca8768469a35f00035 100644 (file)
@@ -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,