From efe3dd06abc5073dc912d964b9a29bf4ce8ff7fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Mon, 7 Jan 2019 18:29:03 +0100 Subject: [PATCH] alsa: initialize values, fixes valgrind warning When snd_mixer_selem_get_*() fails, the values were left uninitialized, trigger a valgrind warning. In addition to fixing this, the error(s) are now logged (but only as warnings, as they are not fatal). --- modules/alsa.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/modules/alsa.c b/modules/alsa.c index 916eb37..7ad9a4c 100644 --- a/modules/alsa.c +++ b/modules/alsa.c @@ -58,12 +58,21 @@ update_state(struct module *mod, snd_mixer_elem_t *elem) { struct private *m = mod->private; - long cur, min, max; - snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_MONO, &cur); - snd_mixer_selem_get_playback_volume_range(elem, &min, &max); + long cur = 0; + int r = snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_MONO, &cur); + if (r < 0) + LOG_WARN("%s,%s: failed to get current volume", m->card, m->mixer); - int unmuted; - snd_mixer_selem_get_playback_switch(elem, SND_MIXER_SCHN_MONO, &unmuted); + long min = 0, max = 0; + r = snd_mixer_selem_get_playback_volume_range(elem, &min, &max); + if (r < 0) + LOG_WARN("%s,%s: failed to get volume min/max", m->card, m->mixer); + + + int unmuted = false; + r = snd_mixer_selem_get_playback_switch(elem, SND_MIXER_SCHN_MONO, &unmuted); + if (r < 0) + LOG_WARN("%s,%s: failed to get muted state", m->card, m->mixer); LOG_DBG("muted=%d, cur=%ld, min=%ld, max=%ld", !unmuted, cur, min, max);