diff options
author | Dan Carpenter <error27@gmail.com> | 2010-03-03 10:13:49 +0300 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-03-03 22:41:42 +0100 |
commit | 282572b5ab99cf27073210ca60b80dd085e1a469 (patch) | |
tree | 223db4faabe0ea81bb99aa9458a5b2626798fa08 /sound | |
parent | e61e642c2a0dc283c52cec76a223ac0699773633 (diff) | |
download | linux-282572b5ab99cf27073210ca60b80dd085e1a469.tar.gz linux-282572b5ab99cf27073210ca60b80dd085e1a469.tar.bz2 linux-282572b5ab99cf27073210ca60b80dd085e1a469.zip |
ALSA: riptide: clean up while loop
If getpaths() returned an odd number this would be a buffer under-run and an
endless loop. It turns out that getpaths() can only return even numbers, but
let's make it easy for people auditing code. With the new code you don't
need to look at getpaths().
This silences a smatch warning.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/riptide/riptide.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c index 960a227eb653..ad4462677615 100644 --- a/sound/pci/riptide/riptide.c +++ b/sound/pci/riptide/riptide.c @@ -1974,9 +1974,9 @@ snd_riptide_proc_read(struct snd_info_entry *entry, } snd_iprintf(buffer, "Paths:\n"); i = getpaths(cif, p); - while (i--) { - snd_iprintf(buffer, "%x->%x ", p[i - 1], p[i]); - i--; + while (i >= 2) { + i -= 2; + snd_iprintf(buffer, "%x->%x ", p[i], p[i + 1]); } snd_iprintf(buffer, "\n"); } |