[alsa-devel] [patch v2] [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 --- v2: reshuffled it a bit per Walter Harms's suggestion.
diff --git a/sound/core/hwdep.c b/sound/core/hwdep.c index c7ceb28..75ea16f 100644 --- a/sound/core/hwdep.c +++ b/sound/core/hwdep.c @@ -273,7 +273,14 @@ static int snd_hwdep_control_ioctl(struct snd_card *card, if (get_user(device, (int __user *)arg)) return -EFAULT; mutex_lock(®ister_mutex); - device = device < 0 ? 0 : device + 1; + + if (device < 0) + device = 0; + else if (device < SNDRV_MINOR_HWDEPS) + device++; + else + device = SNDRV_MINOR_HWDEPS; + while (device < SNDRV_MINOR_HWDEPS) { if (snd_hwdep_search(card, device)) break;
At Fri, 28 Oct 2011 09:46:01 +0300, Dan Carpenter wrote:
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
Applied now. Thanks!
Takashi
v2: reshuffled it a bit per Walter Harms's suggestion.
diff --git a/sound/core/hwdep.c b/sound/core/hwdep.c index c7ceb28..75ea16f 100644 --- a/sound/core/hwdep.c +++ b/sound/core/hwdep.c @@ -273,7 +273,14 @@ static int snd_hwdep_control_ioctl(struct snd_card *card, if (get_user(device, (int __user *)arg)) return -EFAULT; mutex_lock(®ister_mutex);
device = device < 0 ? 0 : device + 1;
if (device < 0)
device = 0;
else if (device < SNDRV_MINOR_HWDEPS)
device++;
else
device = SNDRV_MINOR_HWDEPS;
while (device < SNDRV_MINOR_HWDEPS) { if (snd_hwdep_search(card, device)) break;
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
participants (2)
-
Dan Carpenter
-
Takashi Iwai