projects
/
GitHub
/
moto-9609
/
android_kernel_motorola_exynos9610.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
5df498a
)
ASoC: 88pm860x: array overflow in snd_soc_put_volsw_2r_st()
author
Dan Carpenter
<dan.carpenter@oracle.com>
Fri, 13 Sep 2013 07:52:49 +0000
(10:52 +0300)
committer
Mark Brown
<broonie@linaro.org>
Fri, 13 Sep 2013 17:36:39 +0000
(18:36 +0100)
This is called from snd_ctl_elem_write() with user supplied data so we
need to add some bounds checking.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
sound/soc/codecs/88pm860x-codec.c
patch
|
blob
|
blame
|
history
diff --git
a/sound/soc/codecs/88pm860x-codec.c
b/sound/soc/codecs/88pm860x-codec.c
index 8af04343cc1ac9eab35fe951fd079fd1954da462..259d1ac4492fc610a1454567bdabd52f56dbae5a 100644
(file)
--- a/
sound/soc/codecs/88pm860x-codec.c
+++ b/
sound/soc/codecs/88pm860x-codec.c
@@
-349,6
+349,9
@@
static int snd_soc_put_volsw_2r_st(struct snd_kcontrol *kcontrol,
val = ucontrol->value.integer.value[0];
val2 = ucontrol->value.integer.value[1];
+ if (val >= ARRAY_SIZE(st_table) || val2 >= ARRAY_SIZE(st_table))
+ return -EINVAL;
+
err = snd_soc_update_bits(codec, reg, 0x3f, st_table[val].m);
if (err < 0)
return err;