diff --git a/src/ucm/utils.c b/src/ucm/utils.c index 10b21c34..2fbc4c8c 100644 --- a/src/ucm/utils.c +++ b/src/ucm/utils.c @@ -811,7 +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]; + char buf[7]; long card_num; snd_config_t *config; snd_use_case_mgr_t *uc_mgr; @@ -819,8 +819,10 @@ 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'; + buf[0] = '0'; + buf[1] = 'x'; + strncpy(buf + 2, name + 4, 4); + buf[6] = '\0'; err = safe_strtol(buf, &card_num); if (err < 0 || card_num < 0 || card_num > 0xffff) return NULL;