diff options
author | Colin Ian King <colin.king@canonical.com> | 2016-09-29 13:32:12 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-09-29 14:21:03 -0400 |
commit | 0730bd2e2ade00d88647b13a0c17cde254ddf56e (patch) | |
tree | 37570151b1860c36b98aa74a2099fabd3c914edb | |
parent | 5919a3898136aae4d2cb4b18b44f70f7b185aa47 (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.c | 4 |
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 | ||