From 4633d35171724642fe5884e48bafba7c0151db07 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 18 Oct 2022 15:53:40 +0200 Subject: [PATCH] control: eld - skip trailing spaces Signed-off-by: Jaroslav Kysela --- src/control/eld.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/control/eld.c b/src/control/eld.c index 9be9605f..b7bf779f 100644 --- a/src/control/eld.c +++ b/src/control/eld.c @@ -47,7 +47,7 @@ int __snd_pcm_info_eld_fixup(snd_pcm_info_t * info) snd_ctl_elem_info_t cinfo = {0}; snd_ctl_elem_value_t value = {0}; unsigned char *eld; - unsigned int l; + unsigned int l, spc; char *s, c; int ret, valid; @@ -82,20 +82,23 @@ int __snd_pcm_info_eld_fixup(snd_pcm_info_t * info) return 0; } s = alloca(l + 1); - s[l] = '\0'; /* sanitize */ valid = 0; + spc = 0; while (l > 0) { l--; c = eld[20 + l]; - if (c < ' ' || c >= 0x7f) { + if (c <= ' ' || c >= 0x7f) { s[l] = ' '; } else { valid += !!isalnum(c); s[l] = c; + if (spc == 0) + spc = l + 1; } } if (valid > 3) { + s[spc] = '\0'; snd_strlcpy((char *)info->name, s, sizeof(info->name)); } else { __present: -- 2.47.1