On Thu, Oct 16, 2014 at 07:15:22PM +0200, Rickard Strandqvist wrote:
> 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 <[email protected]>

Reviewed-by: Jason Cooper <[email protected]>

thx,

Jason.

> ---
>  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
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to