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>
This commit is contained in:
parent
77ddaba02b
commit
61daf055ea
|
@ -281,7 +281,6 @@ static ssize_t hwrng_attr_available_show(struct device *dev,
|
||||||
char *buf)
|
char *buf)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
ssize_t ret = 0;
|
|
||||||
struct hwrng *rng;
|
struct hwrng *rng;
|
||||||
|
|
||||||
err = mutex_lock_interruptible(&rng_mutex);
|
err = mutex_lock_interruptible(&rng_mutex);
|
||||||
|
@ -289,16 +288,13 @@ static ssize_t hwrng_attr_available_show(struct device *dev,
|
||||||
return -ERESTARTSYS;
|
return -ERESTARTSYS;
|
||||||
buf[0] = '\0';
|
buf[0] = '\0';
|
||||||
list_for_each_entry(rng, &rng_list, list) {
|
list_for_each_entry(rng, &rng_list, list) {
|
||||||
strncat(buf, rng->name, PAGE_SIZE - ret - 1);
|
strlcat(buf, rng->name, PAGE_SIZE);
|
||||||
ret += strlen(rng->name);
|
strlcat(buf, " ", PAGE_SIZE);
|
||||||
strncat(buf, " ", PAGE_SIZE - ret - 1);
|
|
||||||
ret++;
|
|
||||||
}
|
}
|
||||||
strncat(buf, "\n", PAGE_SIZE - ret - 1);
|
strlcat(buf, "\n", PAGE_SIZE);
|
||||||
ret++;
|
|
||||||
mutex_unlock(&rng_mutex);
|
mutex_unlock(&rng_mutex);
|
||||||
|
|
||||||
return ret;
|
return strlen(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(rng_current, S_IRUGO | S_IWUSR,
|
static DEVICE_ATTR(rng_current, S_IRUGO | S_IWUSR,
|
||||||
|
|
Loading…
Reference in New Issue