| From: Dan Carpenter <dan.carpenter@oracle.com> |
| Date: Thu, 27 Nov 2014 01:34:43 +0300 |
| Subject: ALSA: hda - using uninitialized data |
| |
| commit 69eba10e606a80665f8573221fec589430d9d1cb upstream. |
| |
| In olden times the snd_hda_param_read() function always set "*start_id" |
| but in 2007 we introduced a new return and it causes uninitialized data |
| bugs in a couple of the callers: print_codec_info() and |
| hdmi_parse_codec(). |
| |
| Fixes: e8a7f136f5ed ('[ALSA] hda-intel - Improve HD-audio codec probing robustness') |
| Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| sound/pci/hda/hda_codec.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/sound/pci/hda/hda_codec.c |
| +++ b/sound/pci/hda/hda_codec.c |
| @@ -311,8 +311,10 @@ int snd_hda_get_sub_nodes(struct hda_cod |
| unsigned int parm; |
| |
| parm = snd_hda_param_read(codec, nid, AC_PAR_NODE_COUNT); |
| - if (parm == -1) |
| + if (parm == -1) { |
| + *start_id = 0; |
| return 0; |
| + } |
| *start_id = (parm >> 16) & 0x7fff; |
| return (int)(parm & 0x7fff); |
| } |