aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Ian King <colin.king@canonical.com>2016-09-29 13:32:12 -0400
committerMark Brown <broonie@kernel.org>2016-09-29 14:21:03 -0400
commit0730bd2e2ade00d88647b13a0c17cde254ddf56e (patch)
tree37570151b1860c36b98aa74a2099fabd3c914edb
parent5919a3898136aae4d2cb4b18b44f70f7b185aa47 (diff)
ASoC: Intel: Skylake: fix memory leak of module on error exit path
Currently there is a memory leak of module on a ENOMEM return path. Fix this by kfree'ing module before returning. Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/intel/skylake/skl-sst-utils.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/soc/intel/skylake/skl-sst-utils.c b/sound/soc/intel/skylake/skl-sst-utils.c
index 1aa0f371b381..3fe939c36e3a 100644
--- a/sound/soc/intel/skylake/skl-sst-utils.c
+++ b/sound/soc/intel/skylake/skl-sst-utils.c
@@ -349,8 +349,10 @@ int snd_skl_parse_uuids(struct sst_dsp *ctx, const struct firmware *fw,
349 module->max_instance = mod_entry->instance_max_count; 349 module->max_instance = mod_entry->instance_max_count;
350 size = sizeof(int) * mod_entry->instance_max_count; 350 size = sizeof(int) * mod_entry->instance_max_count;
351 module->instance_id = devm_kzalloc(ctx->dev, size, GFP_KERNEL); 351 module->instance_id = devm_kzalloc(ctx->dev, size, GFP_KERNEL);
352 if (!module->instance_id) 352 if (!module->instance_id) {
353 kfree(module);
353 return -ENOMEM; 354 return -ENOMEM;
355 }
354 356
355 list_add_tail(&module->list, &skl->uuid_list); 357 list_add_tail(&module->list, &skl->uuid_list);
356 358