diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2010-02-01 07:30:56 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2010-02-01 08:12:12 -0500 |
commit | 6123637fafbf445cc9ce5774dc9516da0b2daa88 (patch) | |
tree | 270effa61bb6e4fab8ec44698e7fafa37b0e7ddc /sound/core/control.c | |
parent | a75d7a4cf50d1cee14d8c9aaa2b971232d10f2c1 (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>
Diffstat (limited to 'sound/core/control.c')
-rw-r--r-- | sound/core/control.c | 2 |
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); |