]> git.alsa-project.org Git - alsa-lib.git/commitdiff
ucm: fix parsing of the internal hexadecimal card identifier
authorJaroslav Kysela <perex@perex.cz>
Fri, 12 Nov 2021 14:59:28 +0000 (15:59 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 12 Nov 2021 15:00:59 +0000 (16:00 +0100)
Too many code was removed.

Fixes: f547b2e3 ("conf: introduce safe_strtol_base()")
Fixes: https://github.com/alsa-project/alsa-lib/issues/188
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/ucm/utils.c

index 33802a38dd47332abac3a86be84d082709b92b52..5f61e2a25d52edc73fee673330468c33d7a385a5 100644 (file)
@@ -811,6 +811,7 @@ void uc_mgr_card_close(snd_use_case_mgr_t *uc_mgr)
  */
 const char *uc_mgr_alibcfg_by_device(snd_config_t **top, const char *name)
 {
+       char buf[5];
        long card_num;
        snd_config_t *config;
        snd_use_case_mgr_t *uc_mgr;
@@ -818,6 +819,8 @@ const char *uc_mgr_alibcfg_by_device(snd_config_t **top, const char *name)
 
        if (strncmp(name, "_ucm", 4) || strlen(name) < 12 || name[8] != '.')
                return NULL;
+       strncpy(buf, name + 4, 4);
+       buf[4] = '\0';
        err = safe_strtol_base(name, &card_num, 16);
        if (err < 0 || card_num < 0 || card_num > 0xffff)
                return NULL;