[PATCH v1 1/1] hwrng: core - Replace strlcat() with better alternative

From: Andy Shevchenko

Date: Mon May 04 2026 - 09:06:12 EST


strlcpy() and strlcat() are confusing APIs and the former one already
gone from the kernel.

In preparation to kill strlcat() replace it with the better alternative.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
---
drivers/char/hw_random/core.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
index aba92d777f72..c789699bd773 100644
--- a/drivers/char/hw_random/core.c
+++ b/drivers/char/hw_random/core.c
@@ -418,21 +418,21 @@ static ssize_t rng_available_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{
+ int len = 0;
int err;
struct hwrng *rng;

err = mutex_lock_interruptible(&rng_mutex);
if (err)
return -ERESTARTSYS;
- buf[0] = '\0';
- list_for_each_entry(rng, &rng_list, list) {
- strlcat(buf, rng->name, PAGE_SIZE);
- strlcat(buf, " ", PAGE_SIZE);
- }
- strlcat(buf, "none\n", PAGE_SIZE);
+
+ list_for_each_entry(rng, &rng_list, list)
+ len += sysfs_emit_at(buf, len, "%s ", rng->name);
+ len += sysfs_emit_at(buf, len, "none\n");
+
mutex_unlock(&rng_mutex);

- return strlen(buf);
+ return len;
}

static ssize_t rng_selected_show(struct device *dev,
--
2.50.1