[alsa-devel] [patch] riptide: clean up while loop
Takashi Iwai
tiwai at suse.de
Wed Mar 3 22:51:22 CET 2010
At Wed, 3 Mar 2010 10:13:49 +0300,
Dan Carpenter wrote:
>
> 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 at gmail.com>
Applied now. Thanks.
Takashi
> diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c
> index e66ef2b..a5924af 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");
> }
>
More information about the Alsa-devel
mailing list