mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 6.1] ALSA: hda: Fix missing pointer check in hda_component_manager_init function
@ 2026-09-14  8:05 Roman Demidov
  2026-09-15  2:03 ` Sasha Levin
  0 siblings, 1 reply; 2+ messages in thread
From: Roman Demidov @ 2026-09-14  8:05 UTC (permalink / raw)
  To: stable, Greg Kroah-Hartman
  Cc: Roman Demidov, Jaroslav Kysela, Takashi Iwai, Sasha Levin,
	Tim Guttzeit, Werner Sembach, Kailang Yang, Zhang Heng,
	Sean Rhodes, Damien Dagorn, Martin Hamilton, Bharat Dev Burman,
	Lei Huang, Stefan Binding, Lucas Tanure, linux-sound,
	linux-kernel, Denis Arefev, Takashi Iwai

From: Denis Arefev <arefev@swemel.ru>

commit 1cf11d80db5df805b538c942269e05a65bcaf5bc upstream.

The __component_match_add function may assign the 'matchptr' pointer
the value ERR_PTR(-ENOMEM), which will subsequently be dereferenced.

The call stack leading to the error looks like this:

hda_component_manager_init
|-> component_match_add
    |-> component_match_add_release
        |-> __component_match_add ( ... ,**matchptr, ... )
            |-> *matchptr = ERR_PTR(-ENOMEM);       // assign
|-> component_master_add_with_match( ...  match)
    |-> component_match_realloc(match, match->num); // dereference

Add IS_ERR() check to prevent the crash.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: ae7abe36e352 ("ALSA: hda/realtek: Add CS35L41 support for Thinkpad laptops")
Cc: stable@vger.kernel.org
Signed-off-by: Denis Arefev <arefev@swemel.ru>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
[Roman: Instead of modifying hda_component_manager_init() (which does not
yet exist in version 6.1), a check needs to be added to the
cs35l41_generic_fixup() function—the very function introduced by the
offending commit, which calls component_match_add() without verifying its
successful completion.]
Signed-off-by: Roman Demidov <roman.demidov.nn@gmail.com>
---
Backport fix for BDU:2026-03984

 sound/pci/hda/patch_realtek.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 7b4fd95c66f9..9e6846a37d67 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -7021,6 +7021,11 @@ static void cs35l41_generic_fixup(struct hda_codec *cdc, int action, const char
 			spec->comps[i].codec = cdc;
 			component_match_add(dev, &spec->match,
 					    comp_match_cs35l41_dev_name, rec);
+			if (IS_ERR(spec->match)) {
+				codec_err(cdc, "Fail to add component %ld\n",
+					  PTR_ERR(spec->match));
+				return;
+			}
 		}
 		ret = component_master_add_with_match(dev, &comp_master_ops, spec->match);
 		if (ret)
-- 
2.53.0


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

* Re: [PATCH 6.1] ALSA: hda: Fix missing pointer check in hda_component_manager_init function
  2026-09-14  8:05 [PATCH 6.1] ALSA: hda: Fix missing pointer check in hda_component_manager_init function Roman Demidov
@ 2026-09-15  2:03 ` Sasha Levin
  0 siblings, 0 replies; 2+ messages in thread
From: Sasha Levin @ 2026-09-15  2:03 UTC (permalink / raw)
  To: stable, Greg Kroah-Hartman
  Cc: Sasha Levin, Roman Demidov, Jaroslav Kysela, Takashi Iwai,
	Tim Guttzeit, Werner Sembach, Kailang Yang, Zhang Heng,
	Sean Rhodes, Damien Dagorn, Martin Hamilton, Bharat Dev Burman,
	Lei Huang, Stefan Binding, Lucas Tanure, linux-sound,
	linux-kernel, Denis Arefev, Takashi Iwai

> [Roman: Instead of modifying hda_component_manager_init() (which does not
> yet exist in version 6.1), a check needs to be added to the
> cs35l41_generic_fixup() function

6.6 is missing 1cf11d80db5d ("ALSA: hda: Fix missing pointer check in
hda_component_manager_init function") as well, and it is the newer tree, so 6.1
cannot go first here.

A 6.6 version also needs one more hunk than this: 6.6 has a second unguarded
component_match_add() in tas2781_generic_fixup() alongside the
cs35l41_generic_fixup() one.

Could you send a v2 covering 6.6, both call sites, and 6.1?

-- 
Thanks,
Sasha

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

end of thread, other threads:[~2026-09-15  2:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-14  8:05 [PATCH 6.1] ALSA: hda: Fix missing pointer check in hda_component_manager_init function Roman Demidov
2026-09-15  2:03 ` Sasha Levin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®