ALSA: hda: check make_exec_verb() return value
authorGreg Thelen <gthelen@google.com>
Mon, 13 Jun 2011 14:45:45 +0000 (07:45 -0700)
committerTakashi Iwai <tiwai@suse.de>
Mon, 13 Jun 2011 15:52:06 +0000 (17:52 +0200)
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>
sound/pci/hda/hda_codec.c

index ce418c8..a2388fc 100644 (file)
@@ -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);