From: Dan Carpenter <error27@gmail.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: alsa-devel@alsa-project.org, kernel-janitors@vger.kernel.org,
Takashi Iwai <tiwai@suse.com>, Maxime Ripard <mripard@kernel.org>
Subject: Re: [PATCH] ALSA: pci: lx6464es: fix a debug loop
Date: Thu, 26 Jan 2023 19:39:06 +0300 [thread overview]
Message-ID: <Y9KsqpFRrlhX57WJ@kadam> (raw)
In-Reply-To: <878rhptq36.wl-tiwai@suse.de>
On Thu, Jan 26, 2023 at 01:53:01PM +0100, Takashi Iwai wrote:
> On Thu, 26 Jan 2023 10:30:02 +0100,
> Dan Carpenter wrote:
> >
> > This loop accidentally reuses the "i" iterator for both the inside and
> > the outside loop. The value of MAX_STREAM_BUFFER is 5. I believe that
> > chip->rmh.stat_len is in the 2-12 range. If the value of .stat_len is
> > 4 or more then it will loop exactly one time, but if it's less then it
> > is a forever loop.
> >
> > Fixes: 8e6320064c33 ("ALSA: lx_core: Remove useless #if 0 .. #endif")
> > Signed-off-by: Dan Carpenter <error27@gmail.com>
> > ---
> > sound/pci/lx6464es/lx_core.c | 12 +++++-------
> > 1 file changed, 5 insertions(+), 7 deletions(-)
> >
> > diff --git a/sound/pci/lx6464es/lx_core.c b/sound/pci/lx6464es/lx_core.c
> > index d3f58a3d17fb..7c1b380a54c0 100644
> > --- a/sound/pci/lx6464es/lx_core.c
> > +++ b/sound/pci/lx6464es/lx_core.c
> > @@ -493,13 +493,11 @@ int lx_buffer_ask(struct lx6464es *chip, u32 pipe, int is_capture,
> > dev_dbg(chip->card->dev,
> > "CMD_08_ASK_BUFFERS: needed %d, freed %d\n",
> > *r_needed, *r_freed);
> > - for (i = 0; i < MAX_STREAM_BUFFER; ++i) {
> > - for (i = 0; i != chip->rmh.stat_len; ++i)
> > - dev_dbg(chip->card->dev,
> > - " stat[%d]: %x, %x\n", i,
> > - chip->rmh.stat[i],
> > - chip->rmh.stat[i] & MASK_DATA_SIZE);
> > - }
> > + for (i = 0; i < chip->rmh.stat_len; ++i)
>
> Judging from the previous lines, the access over MAX_STREAM_BUFFER
> might be unsafe. So I guess a more safer change would be something
> like:
>
> for (i = 0; i < MAX_STREAM_BUFFER && chip->rmh.stat_len; ++i)
&& i < chip->rmh.stat_len
TBH, I'd prefer to just delete all this code since it used be ifdef 0.
But I'll resend as you have suggested.
regards,
dan carpenter
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <error27@gmail.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: Jaroslav Kysela <perex@perex.cz>,
Maxime Ripard <mripard@kernel.org>, Takashi Iwai <tiwai@suse.com>,
alsa-devel@alsa-project.org, kernel-janitors@vger.kernel.org
Subject: Re: [PATCH] ALSA: pci: lx6464es: fix a debug loop
Date: Thu, 26 Jan 2023 19:39:06 +0300 [thread overview]
Message-ID: <Y9KsqpFRrlhX57WJ@kadam> (raw)
In-Reply-To: <878rhptq36.wl-tiwai@suse.de>
On Thu, Jan 26, 2023 at 01:53:01PM +0100, Takashi Iwai wrote:
> On Thu, 26 Jan 2023 10:30:02 +0100,
> Dan Carpenter wrote:
> >
> > This loop accidentally reuses the "i" iterator for both the inside and
> > the outside loop. The value of MAX_STREAM_BUFFER is 5. I believe that
> > chip->rmh.stat_len is in the 2-12 range. If the value of .stat_len is
> > 4 or more then it will loop exactly one time, but if it's less then it
> > is a forever loop.
> >
> > Fixes: 8e6320064c33 ("ALSA: lx_core: Remove useless #if 0 .. #endif")
> > Signed-off-by: Dan Carpenter <error27@gmail.com>
> > ---
> > sound/pci/lx6464es/lx_core.c | 12 +++++-------
> > 1 file changed, 5 insertions(+), 7 deletions(-)
> >
> > diff --git a/sound/pci/lx6464es/lx_core.c b/sound/pci/lx6464es/lx_core.c
> > index d3f58a3d17fb..7c1b380a54c0 100644
> > --- a/sound/pci/lx6464es/lx_core.c
> > +++ b/sound/pci/lx6464es/lx_core.c
> > @@ -493,13 +493,11 @@ int lx_buffer_ask(struct lx6464es *chip, u32 pipe, int is_capture,
> > dev_dbg(chip->card->dev,
> > "CMD_08_ASK_BUFFERS: needed %d, freed %d\n",
> > *r_needed, *r_freed);
> > - for (i = 0; i < MAX_STREAM_BUFFER; ++i) {
> > - for (i = 0; i != chip->rmh.stat_len; ++i)
> > - dev_dbg(chip->card->dev,
> > - " stat[%d]: %x, %x\n", i,
> > - chip->rmh.stat[i],
> > - chip->rmh.stat[i] & MASK_DATA_SIZE);
> > - }
> > + for (i = 0; i < chip->rmh.stat_len; ++i)
>
> Judging from the previous lines, the access over MAX_STREAM_BUFFER
> might be unsafe. So I guess a more safer change would be something
> like:
>
> for (i = 0; i < MAX_STREAM_BUFFER && chip->rmh.stat_len; ++i)
&& i < chip->rmh.stat_len
TBH, I'd prefer to just delete all this code since it used be ifdef 0.
But I'll resend as you have suggested.
regards,
dan carpenter
next prev parent reply other threads:[~2023-01-26 16:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-26 9:30 [PATCH] ALSA: pci: lx6464es: fix a debug loop Dan Carpenter
2023-01-26 9:30 ` Dan Carpenter
2023-01-26 12:53 ` Takashi Iwai
2023-01-26 12:53 ` Takashi Iwai
2023-01-26 16:39 ` Dan Carpenter [this message]
2023-01-26 16:39 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y9KsqpFRrlhX57WJ@kadam \
--to=error27@gmail.com \
--cc=alsa-devel@alsa-project.org \
--cc=kernel-janitors@vger.kernel.org \
--cc=mripard@kernel.org \
--cc=tiwai@suse.com \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.