[ALSA] Return error if no user TLV is defined
Takashi Iwai [Fri, 25 Aug 2006 09:39:34 +0000 (11:39 +0200)]
Retrun error to user TLV_READ ioctl if no TLV is defined.
(Until now, nothing was written and rerunred successfully.)

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>

sound/core/control.c

index 3030aaa..6973a96 100644 (file)
@@ -951,6 +951,8 @@ static int snd_ctl_elem_user_tlv(struct snd_kcontrol *kcontrol,
                ue->tlv_data = new_data;
                ue->tlv_data_size = size;
        } else {
+               if (! ue->tlv_data_size || ! ue->tlv_data)
+                       return -ENXIO;
                if (size < ue->tlv_data_size)
                        return -ENOSPC;
                if (copy_to_user(tlv, ue->tlv_data, ue->tlv_data_size))