[alsa-devel] [PATCH 2/3] ALSA: hda - hdmi: Do not expose eld data when eld is invalid
Takashi Iwai
tiwai at suse.de
Mon Feb 18 15:39:23 CET 2013
At Mon, 18 Feb 2013 14:11:12 +0100,
David Henningsson wrote:
>
> Previously, it was possible to read the eld data of the previous
> monitor connected. This should not be allowed.
>
> Also refactor the function slightly.
>
> Signed-off-by: David Henningsson <david.henningsson at canonical.com>
> ---
> sound/pci/hda/patch_hdmi.c | 24 +++++++++++++++++-------
> 1 file changed, 17 insertions(+), 7 deletions(-)
>
> diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
> index 32adaa6..9236cdb 100644
> --- a/sound/pci/hda/patch_hdmi.c
> +++ b/sound/pci/hda/patch_hdmi.c
> @@ -343,14 +343,17 @@ static int hdmi_eld_ctl_info(struct snd_kcontrol *kcontrol,
> struct snd_ctl_elem_info *uinfo)
> {
> struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
> - struct hdmi_spec *spec;
> + struct hdmi_spec *spec = codec->spec;
> + struct hdmi_eld *eld;
> int pin_idx;
>
> - spec = codec->spec;
> uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
>
> pin_idx = kcontrol->private_value;
> - uinfo->count = spec->pins[pin_idx].sink_eld.eld_size;
> + eld = &spec->pins[pin_idx].sink_eld;
> +
> + if (eld->eld_valid)
> + uinfo->count = eld->eld_valid ? eld->eld_size : 0;
You don't have to check eld->eld_valid twice.
Takashi
More information about the Alsa-devel
mailing list