diff options
author | Eugene Teo <eugene.teo@eugeneteo.net> | 2006-03-25 06:08:07 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-25 11:22:59 -0500 |
commit | fe9bab2df96cec7011773aab272515b9faa9b6c4 (patch) | |
tree | 9e345e83dfd004464d250053f2bb63b9432830bc /sound/oss/sb_mixer.c | |
parent | 1f4d4a80fbcb1e09cfb95660bcd2b677ea6d04c1 (diff) |
[PATCH] Fix sb_mixer use before validation
dev should be validated before it is being used as index to array.
Coverity bug #871
Signed-off-by: Eugene Teo <eugene.teo@eugeneteo.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'sound/oss/sb_mixer.c')
-rw-r--r-- | sound/oss/sb_mixer.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/oss/sb_mixer.c b/sound/oss/sb_mixer.c index f56898c3981e..ccb21d48d42c 100644 --- a/sound/oss/sb_mixer.c +++ b/sound/oss/sb_mixer.c | |||
@@ -273,14 +273,14 @@ int sb_common_mixer_set(sb_devc * devc, int dev, int left, int right) | |||
273 | int regoffs; | 273 | int regoffs; |
274 | unsigned char val; | 274 | unsigned char val; |
275 | 275 | ||
276 | if ((dev < 0) || (dev >= devc->iomap_sz)) | ||
277 | return -EINVAL; | ||
278 | |||
276 | regoffs = (*devc->iomap)[dev][LEFT_CHN].regno; | 279 | regoffs = (*devc->iomap)[dev][LEFT_CHN].regno; |
277 | 280 | ||
278 | if (regoffs == 0) | 281 | if (regoffs == 0) |
279 | return -EINVAL; | 282 | return -EINVAL; |
280 | 283 | ||
281 | if ((dev < 0) || (dev >= devc->iomap_sz)) | ||
282 | return -EINVAL; | ||
283 | |||
284 | val = sb_getmixer(devc, regoffs); | 284 | val = sb_getmixer(devc, regoffs); |
285 | change_bits(devc, &val, dev, LEFT_CHN, left); | 285 | change_bits(devc, &val, dev, LEFT_CHN, left); |
286 | 286 | ||