提交 5513b0c5 编写于 作者: T Takashi Iwai 提交者: Jaroslav Kysela

[ALSA] hda-codec - Add zero checks in input-mux helper functions

Added zero checks in input-mux helper functions to avoid Oops.
Some devices may have no input pins while the driver registers
control elements calling these functions.
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
Signed-off-by: NJaroslav Kysela <perex@suse.cz>
上级 2469049e
...@@ -2341,6 +2341,8 @@ int snd_hda_input_mux_info(const struct hda_input_mux *imux, ...@@ -2341,6 +2341,8 @@ int snd_hda_input_mux_info(const struct hda_input_mux *imux,
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1; uinfo->count = 1;
uinfo->value.enumerated.items = imux->num_items; uinfo->value.enumerated.items = imux->num_items;
if (!imux->num_items)
return 0;
index = uinfo->value.enumerated.item; index = uinfo->value.enumerated.item;
if (index >= imux->num_items) if (index >= imux->num_items)
index = imux->num_items - 1; index = imux->num_items - 1;
...@@ -2356,6 +2358,8 @@ int snd_hda_input_mux_put(struct hda_codec *codec, ...@@ -2356,6 +2358,8 @@ int snd_hda_input_mux_put(struct hda_codec *codec,
{ {
unsigned int idx; unsigned int idx;
if (!imux->num_items)
return 0;
idx = ucontrol->value.enumerated.item[0]; idx = ucontrol->value.enumerated.item[0];
if (idx >= imux->num_items) if (idx >= imux->num_items)
idx = imux->num_items - 1; idx = imux->num_items - 1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册