diff options
-rw-r--r-- | src/mixer/simple_none.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index 0799ceb3..ab2b1515 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -1313,7 +1313,7 @@ static int enum_item_name_ops(snd_mixer_elem_t *elem, size_t maxlen, char *buf) { selem_none_t *s = snd_mixer_elem_get_private(elem); - snd_ctl_elem_info_t *info; + snd_ctl_elem_info_t info = {0}; snd_hctl_elem_t *helem; int type; @@ -1330,11 +1330,10 @@ static int enum_item_name_ops(snd_mixer_elem_t *elem, assert(helem); if (item >= (unsigned int)s->ctls[type].max) return -EINVAL; - snd_ctl_elem_info_alloca(&info); - snd_hctl_elem_info(helem, info); - snd_ctl_elem_info_set_item(info, item); - snd_hctl_elem_info(helem, info); - strncpy(buf, snd_ctl_elem_info_get_item_name(info), maxlen); + snd_hctl_elem_info(helem, &info); + snd_ctl_elem_info_set_item(&info, item); + snd_hctl_elem_info(helem, &info); + strncpy(buf, snd_ctl_elem_info_get_item_name(&info), maxlen); return 0; } |