linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ASoC: hdac_hda: Avoid unexpected match when pcm_name is "Analog"
@ 2022-03-02  9:43 Meng Tang
  2022-03-03 13:33 ` Mark Brown
  0 siblings, 1 reply; 2+ messages in thread
From: Meng Tang @ 2022-03-02  9:43 UTC (permalink / raw)
  To: perex, tiwai, lgirdwood, broonie; +Cc: alsa-devel, linux-kernel, Meng Tang

pcm name can be "Analog" and "Alt Analog", cpcm->name can be
"Analog Codec DAI" and "Alt Analog Codec DAI". When pcm_name
is "Analog", "Analog Codec DAI" and "Alt Analog Codec DAI" are
both satisfy the 'if (strstr(cpcm->name, pcm_name))' condition,
which may cause the returned cpcm to be "Alt Analog Codec DAI".

Even if we get the pcm name by id, and "Analog Codec DAI" goes
into the loop before "Alt Analog Codec DAI", but I still think
we'd better have multiple insurances against unexpected return
values. After, we can correctly return the expected result
even if other relevant places are changed.

Signed-off-by: Meng Tang <tangmeng@uniontech.com>
---
 sound/soc/codecs/hdac_hda.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/sound/soc/codecs/hdac_hda.c b/sound/soc/codecs/hdac_hda.c
index 667f3df239c7..a9f61c7e44ee 100644
--- a/sound/soc/codecs/hdac_hda.c
+++ b/sound/soc/codecs/hdac_hda.c
@@ -363,8 +363,13 @@ static struct hda_pcm *snd_soc_find_pcm_from_dai(struct hdac_hda_priv *hda_pvt,
 	}
 
 	list_for_each_entry(cpcm, &hcodec->pcm_list_head, list) {
-		if (strstr(cpcm->name, pcm_name))
+		if (strstr(cpcm->name, pcm_name)) {
+			if (strcmp(pcm_name, "Analog") == 0) {
+				if (strstr(cpcm->name, "Alt Analog"))
+					continue;
+			}
 			return cpcm;
+		}
 	}
 
 	dev_err(&hcodec->core.dev, "didn't find PCM for DAI %s\n", dai->name);
-- 
2.20.1




^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] ASoC: hdac_hda: Avoid unexpected match when pcm_name is "Analog"
  2022-03-02  9:43 [PATCH] ASoC: hdac_hda: Avoid unexpected match when pcm_name is "Analog" Meng Tang
@ 2022-03-03 13:33 ` Mark Brown
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Brown @ 2022-03-03 13:33 UTC (permalink / raw)
  To: perex, Meng Tang, lgirdwood, tiwai; +Cc: linux-kernel, alsa-devel

On Wed, 2 Mar 2022 17:43:51 +0800, Meng Tang wrote:
> pcm name can be "Analog" and "Alt Analog", cpcm->name can be
> "Analog Codec DAI" and "Alt Analog Codec DAI". When pcm_name
> is "Analog", "Analog Codec DAI" and "Alt Analog Codec DAI" are
> both satisfy the 'if (strstr(cpcm->name, pcm_name))' condition,
> which may cause the returned cpcm to be "Alt Analog Codec DAI".
> 
> Even if we get the pcm name by id, and "Analog Codec DAI" goes
> into the loop before "Alt Analog Codec DAI", but I still think
> we'd better have multiple insurances against unexpected return
> values. After, we can correctly return the expected result
> even if other relevant places are changed.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] ASoC: hdac_hda: Avoid unexpected match when pcm_name is "Analog"
      commit: e94769900f4302b4034945e5d9ec8262a2f5e086

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-03-03 13:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-02  9:43 [PATCH] ASoC: hdac_hda: Avoid unexpected match when pcm_name is "Analog" Meng Tang
2022-03-03 13:33 ` Mark Brown

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).