Skip to content

Commit b0e2333

Browse files
wangdichengtiwai
authored andcommitted
ALSA: hda/conexant: Fix missing error check for jack detection
In cx_probe(), the return value of snd_hda_jack_detect_enable_callback() is ignored. This function returns a pointer, and if it fails (e.g., due to memory allocation failure), it returns an error pointer which must be checked using IS_ERR(). If the registration fails, the driver continues to probe, but the jack detection callback will not be registered. This can lead to a kernel crash later when the driver attempts to handle jack events or accesses the uninitialized structure. Check the return value using IS_ERR() and propagate the error via PTR_ERR() to the probe caller. Fixes: 7aeb259 ("ALSA: hda/conexant: Fix headset auto detect fail in cx8070 and SN6140") Signed-off-by: wangdicheng <wangdicheng@kylinos.cn> Link: https://patch.msgid.link/20260428080450.108801-1-wangdich9700@163.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent 077c593 commit b0e2333

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

sound/hda/codecs/conexant.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1175,6 +1175,7 @@ static void add_cx5051_fake_mutes(struct hda_codec *codec)
11751175
static int cx_probe(struct hda_codec *codec, const struct hda_device_id *id)
11761176
{
11771177
struct conexant_spec *spec;
1178+
struct hda_jack_callback *callback;
11781179
int err;
11791180

11801181
codec_info(codec, "%s: BIOS auto-probing.\n", codec->core.chip_name);
@@ -1190,7 +1191,12 @@ static int cx_probe(struct hda_codec *codec, const struct hda_device_id *id)
11901191
case 0x14f11f86:
11911192
case 0x14f11f87:
11921193
spec->is_cx11880_sn6140 = true;
1193-
snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref);
1194+
callback = snd_hda_jack_detect_enable_callback(codec, 0x19,
1195+
cx_update_headset_mic_vref);
1196+
if (IS_ERR(callback)) {
1197+
err = PTR_ERR(callback);
1198+
goto error;
1199+
}
11941200
break;
11951201
}
11961202

0 commit comments

Comments
 (0)