diff options
author | Takashi Iwai <tiwai@suse.de> | 2006-08-25 11:39:34 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-09-23 10:44:21 +0200 |
commit | 18c1c3f694105ab2a6f43e054e23f9a751b2f869 (patch) | |
tree | 06c01bed5e123f33bbc9633ac6eb98784e626f3b /sound/core/control.c | |
parent | 86148e84c218e49b54521e8dae7bb78eb66c4281 (diff) | |
download | op-kernel-dev-18c1c3f694105ab2a6f43e054e23f9a751b2f869.zip op-kernel-dev-18c1c3f694105ab2a6f43e054e23f9a751b2f869.tar.gz |
[ALSA] Return error if no user TLV is defined
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>
Diffstat (limited to 'sound/core/control.c')
-rw-r--r-- | sound/core/control.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/core/control.c b/sound/core/control.c index 3030aaa..6973a96 100644 --- a/sound/core/control.c +++ b/sound/core/control.c @@ -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)) |