diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2010-02-01 15:30:56 +0300 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2010-02-01 16:12:12 +0300 |
commit | 6123637fafbf445cc9ce5774dc9516da0b2daa88 (patch) | |
tree | 270effa61bb6e4fab8ec44698e7fafa37b0e7ddc /sound/core/control.c | |
parent | a75d7a4cf50d1cee14d8c9aaa2b971232d10f2c1 (diff) | |
download | linux-6123637fafbf445cc9ce5774dc9516da0b2daa88.tar.xz |
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, if (copy_from_user(&tlv, _tlv, sizeof(tlv))) return -EFAULT; - if (tlv.length < sizeof(unsigned int) * 3) + if (tlv.length < sizeof(unsigned int) * 2) return -EINVAL; down_read(&card->controls_rwsem); kctl = snd_ctl_find_numid(card, tlv.numid); |