Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 88e8b9a8 authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: Check for a CODEC before dereferencing in DAPM



A CODEC pointer is optional (and is checked for in most contexts within
DAPM) - add checks to the few places where it was missed.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
parent 12ea2c78
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1517,7 +1517,7 @@ static int snd_soc_dapm_add_route(struct snd_soc_dapm_context *dapm,
	char prefixed_source[80];
	int ret = 0;

	if (dapm->codec->name_prefix) {
	if (dapm->codec && dapm->codec->name_prefix) {
		snprintf(prefixed_sink, sizeof(prefixed_sink), "%s %s",
			 dapm->codec->name_prefix, route->sink);
		sink = prefixed_sink;
@@ -2167,14 +2167,14 @@ int snd_soc_dapm_new_control(struct snd_soc_dapm_context *dapm,
		return -ENOMEM;

	name_len = strlen(widget->name) + 1;
	if (dapm->codec->name_prefix)
	if (dapm->codec && dapm->codec->name_prefix)
		name_len += 1 + strlen(dapm->codec->name_prefix);
	w->name = kmalloc(name_len, GFP_KERNEL);
	if (w->name == NULL) {
		kfree(w);
		return -ENOMEM;
	}
	if (dapm->codec->name_prefix)
	if (dapm->codec && dapm->codec->name_prefix)
		snprintf(w->name, name_len, "%s %s",
			dapm->codec->name_prefix, widget->name);
	else