aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2010-02-01 07:30:56 -0500
committerJaroslav Kysela <perex@perex.cz>2010-02-01 08:12:12 -0500
commit6123637fafbf445cc9ce5774dc9516da0b2daa88 (patch)
tree270effa61bb6e4fab8ec44698e7fafa37b0e7ddc
parenta75d7a4cf50d1cee14d8c9aaa2b971232d10f2c1 (diff)
sound: control: fix minimum TLV length
Allow TLV blocks that do not have any values; the smallest possible TLV is an empty container or one where the information is only in the tag. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r--sound/core/control.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/core/control.c b/sound/core/control.c
index 6a4764dcb180..439ce64f9d82 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -1100,7 +1100,7 @@ static int snd_ctl_tlv_ioctl(struct snd_ctl_file *file,
1100 1100
1101 if (copy_from_user(&tlv, _tlv, sizeof(tlv))) 1101 if (copy_from_user(&tlv, _tlv, sizeof(tlv)))
1102 return -EFAULT; 1102 return -EFAULT;
1103 if (tlv.length < sizeof(unsigned int) * 3) 1103 if (tlv.length < sizeof(unsigned int) * 2)
1104 return -EINVAL; 1104 return -EINVAL;
1105 down_read(&card->controls_rwsem); 1105 down_read(&card->controls_rwsem);
1106 kctl = snd_ctl_find_numid(card, tlv.numid); 1106 kctl = snd_ctl_find_numid(card, tlv.numid);