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

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


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent d1cf5d30
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -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)
	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 |
		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);
}