From: Tom Rix <trix@redhat.com> To: Vinod Koul <vkoul@kernel.org> Cc: yung-chuan.liao@linux.intel.com, pierre-louis.bossart@linux.intel.com, sanyog.r.kale@intel.com, natechancellor@gmail.com, ndesaulniers@google.com, guennadi.liakhovetski@linux.intel.com, kai.vehmanen@linux.intel.com, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com Subject: Re: [PATCH] soundwire: stream: fix an invalid free Date: Mon, 7 Sep 2020 07:25:59 -0700 [thread overview] Message-ID: <93b672ef-76c9-e87c-4526-897b0af01945@redhat.com> (raw) In-Reply-To: <20200907141402.GC2639@vkoul-mobl> On 9/7/20 7:14 AM, Vinod Koul wrote: > Hello Tom, > > On 05-09-20, 12:26, trix@redhat.com wrote: >> From: Tom Rix <trix@redhat.com> >> >> clang static analyzer reports this problem >> >> stream.c:872:2: warning: Argument to kfree() is a constant >> address (18446744073709551092), which is not memory >> allocated by malloc() >> kfree(stream); >> ^~~~~~~~~~~~~ >> >> In sdw_shutdown_stream() the stream to free is set by >> a call to snd_soc_dai_get_sdw_stream(). The problem block >> is the check if the call was successful. >> >> if (!sdw_stream) { >> dev_err(rtd->dev, "no stream found... >> return; >> } >> >> When snd_soc_dai_get_sdw_stream() fails, it does not >> always return null, sometimes it returns -ENOTSUPP. >> >> So also check for error codes. >> Fixes: 4550569bd779 ("soundwire: stream: add helper to startup/shutdown streams") >> Signed-off-by: Tom Rix <trix@redhat.com> >> --- >> drivers/soundwire/stream.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/soundwire/stream.c b/drivers/soundwire/stream.c >> index 6e36deb505b1..950231d593c2 100644 >> --- a/drivers/soundwire/stream.c >> +++ b/drivers/soundwire/stream.c >> @@ -1913,7 +1913,7 @@ void sdw_shutdown_stream(void *sdw_substream) >> >> sdw_stream = snd_soc_dai_get_sdw_stream(dai, substream->stream); >> >> - if (!sdw_stream) { >> + if (IS_ERR_OR_NULL(sdw_stream)) { > Thanks for the patch. Please see commit 3471d2a192ba ("soundwire: > stream: fix NULL/IS_ERR confusion") in soundwire-next. This has already > been updated to IS_ERR() and Bard has already sent patches for > snd_soc_dai_get_sdw_stream() to return proper values. > > So I you can rerun this on next, you should see this fixed. I am working on linux-next, so I will see Bard's patch when it lands there. Sorry for not working on soundwire-next, but since i am fixing everywhere linux-next is easiest. Thank you for the update. Tom >
next prev parent reply other threads:[~2020-09-07 16:30 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-09-05 19:26 trix 2020-09-07 14:14 ` Vinod Koul 2020-09-07 14:25 ` Tom Rix [this message] 2020-09-07 16:55 ` Vinod Koul
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=93b672ef-76c9-e87c-4526-897b0af01945@redhat.com \ --to=trix@redhat.com \ --cc=alsa-devel@alsa-project.org \ --cc=clang-built-linux@googlegroups.com \ --cc=guennadi.liakhovetski@linux.intel.com \ --cc=kai.vehmanen@linux.intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=natechancellor@gmail.com \ --cc=ndesaulniers@google.com \ --cc=pierre-louis.bossart@linux.intel.com \ --cc=sanyog.r.kale@intel.com \ --cc=vkoul@kernel.org \ --cc=yung-chuan.liao@linux.intel.com \ --subject='Re: [PATCH] soundwire: stream: fix an invalid free' \ /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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).