Commit 5366a640 authored by Brent Lu's avatar Brent Lu Committed by Mark Brown

ASoC: rt5645: NULL pointer access when removing jack

Machine driver calls snd_soc_component_set_jack() function with NULL
jack and data parameters when removing jack in codec exit function.
Do not access data when jack is NULL.
Signed-off-by: default avatarBrent Lu <brent.lu@intel.com>
Link: https://lore.kernel.org/r/20230904104046.4150208-1-brent.lu@intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent d1cf5d30
......@@ -3269,13 +3269,17 @@ static int rt5645_component_set_jack(struct snd_soc_component *component,
{
struct snd_soc_jack *mic_jack = NULL;
struct snd_soc_jack *btn_jack = NULL;
int *type = (int *)data;
int type;
if (*type & SND_JACK_MICROPHONE)
mic_jack = hs_jack;
if (*type & (SND_JACK_BTN_0 | SND_JACK_BTN_1 |
SND_JACK_BTN_2 | SND_JACK_BTN_3))
btn_jack = hs_jack;
if (hs_jack) {
type = *(int *)data;
if (type & SND_JACK_MICROPHONE)
mic_jack = hs_jack;
if (type & (SND_JACK_BTN_0 | SND_JACK_BTN_1 |
SND_JACK_BTN_2 | SND_JACK_BTN_3))
btn_jack = hs_jack;
}
return rt5645_set_jack_detect(component, hs_jack, mic_jack, btn_jack);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment