]> git.alsa-project.org Git - alsa-lib.git/commitdiff
control: eld - skip trailing spaces
authorJaroslav Kysela <perex@perex.cz>
Tue, 18 Oct 2022 13:53:40 +0000 (15:53 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 18 Oct 2022 13:53:52 +0000 (15:53 +0200)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/control/eld.c

index 9be9605fd091a00168431b2d8dec90adf7c0a063..b7bf779f7b73838600a5a654057ba86b34b06ac9 100644 (file)
@@ -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: