Use the return value of scnprintf() to keep track of the current string
length and also replace strlcat() with scnprintf(). Return the string
length directly instead of calling strlen(buf).
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
sound/core/jack.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/sound/core/jack.c b/sound/core/jack.c
index 5e8a2f3f4196..96e0733ede77 100644
--- a/sound/core/jack.c
+++ b/sound/core/jack.c
@@ -250,18 +250,15 @@ static const char * const jack_events_name[] = {
/* the recommended buffer size is 256 */
static int parse_mask_bits(unsigned int mask_bits, char *buf, size_t buf_size)
{
+ int len = scnprintf(buf, buf_size, "0x%04x", mask_bits);
int i;
- scnprintf(buf, buf_size, "0x%04x", mask_bits);
-
for (i = 0; i < ARRAY_SIZE(jack_events_name); i++)
- if (mask_bits & (1 << i)) {
- strlcat(buf, " ", buf_size);
- strlcat(buf, jack_events_name[i], buf_size);
- }
- strlcat(buf, "\n", buf_size);
+ if (mask_bits & (1 << i))
+ len += scnprintf(buf + len, buf_size - len, " %s", jack_events_name[i]);
+ len += scnprintf(buf + len, buf_size - len, "\n");
- return strlen(buf);
+ return len;
}
static ssize_t jack_kctl_mask_bits_read(struct file *file,