diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2011-10-28 02:46:01 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-10-31 04:52:43 -0400 |
commit | f7b2bb8549e352353427d0f8913c96914dd0baab (patch) | |
tree | 33f5ae7bb40d02c9a552115a0dd587029f2e32f6 /sound/core | |
parent | 8128c9f21509f9a8b6da94ac432d845dda458406 (diff) |
ALSA: hwdep: silence integer overflow warning
Smatch complains that if device is INT_MAX then device + 1 can
overflow. It just means we would have an annoying loop while we
check all the devices from -2147483648 to SNDRV_MINOR_HWDEPS.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core')
-rw-r--r-- | sound/core/hwdep.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/core/hwdep.c b/sound/core/hwdep.c index a70ee7f1ed98..031e215b6dde 100644 --- a/sound/core/hwdep.c +++ b/sound/core/hwdep.c | |||
@@ -272,7 +272,14 @@ static int snd_hwdep_control_ioctl(struct snd_card *card, | |||
272 | if (get_user(device, (int __user *)arg)) | 272 | if (get_user(device, (int __user *)arg)) |
273 | return -EFAULT; | 273 | return -EFAULT; |
274 | mutex_lock(®ister_mutex); | 274 | mutex_lock(®ister_mutex); |
275 | device = device < 0 ? 0 : device + 1; | 275 | |
276 | if (device < 0) | ||
277 | device = 0; | ||
278 | else if (device < SNDRV_MINOR_HWDEPS) | ||
279 | device++; | ||
280 | else | ||
281 | device = SNDRV_MINOR_HWDEPS; | ||
282 | |||
276 | while (device < SNDRV_MINOR_HWDEPS) { | 283 | while (device < SNDRV_MINOR_HWDEPS) { |
277 | if (snd_hwdep_search(card, device)) | 284 | if (snd_hwdep_search(card, device)) |
278 | break; | 285 | break; |