diff options
author | Greg Thelen <gthelen@google.com> | 2011-06-13 07:45:45 -0700 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-06-13 17:52:06 +0200 |
commit | 9857edfd4db0dc879f786e042f24900fd683b0ac (patch) | |
tree | a29500b8a2d1f50b241cf9478a8cfe8e02f1b000 /sound/pci/hda/hda_codec.c | |
parent | 5ab775c7078533de0032fba3619d24e5cb9a6a34 (diff) |
ALSA: hda: check make_exec_verb() return value
If given a -1 cmd parameter then make_exec_verb() returns -1 without
setting the res output value.
Prior to this change snd_hda_codec_read() assumed that make_exec_verb()
unconditionally set res regardless of the cmd value.
This change explicitly checks the make_exec_verb() return value before
consuming the potentially unset res value.
Signed-off-by: Greg Thelen <gthelen@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_codec.c')
-rw-r--r-- | sound/pci/hda/hda_codec.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index ce418c805a1..a2388fc23e3 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -243,7 +243,8 @@ unsigned int snd_hda_codec_read(struct hda_codec *codec, hda_nid_t nid, { unsigned cmd = make_codec_cmd(codec, nid, direct, verb, parm); unsigned int res; - codec_exec_verb(codec, cmd, &res); + if (codec_exec_verb(codec, cmd, &res)) + return -1; return res; } EXPORT_SYMBOL_HDA(snd_hda_codec_read); |