diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mixer/simple_none.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index 3362f826..3ee1168f 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -1363,7 +1363,7 @@ static int set_enum_item_ops(snd_mixer_elem_t *elem, unsigned int item) { selem_none_t *s = snd_mixer_elem_get_private(elem); - snd_ctl_elem_value_t *ctl; + snd_ctl_elem_value_t ctl = {0}; snd_hctl_elem_t *helem; int err; int type; @@ -1385,13 +1385,12 @@ static int set_enum_item_ops(snd_mixer_elem_t *elem, if (item >= (unsigned int)s->ctls[type].max) { return -EINVAL; } - snd_ctl_elem_value_alloca(&ctl); - err = snd_hctl_elem_read(helem, ctl); + err = snd_hctl_elem_read(helem, &ctl); if (err < 0) { return err; } - snd_ctl_elem_value_set_enumerated(ctl, channel, item); - return snd_hctl_elem_write(helem, ctl); + snd_ctl_elem_value_set_enumerated(&ctl, channel, item); + return snd_hctl_elem_write(helem, &ctl); } static struct sm_elem_ops simple_none_ops = { |